【问题标题】:How to split values in a array for each item in php如何为php中的每个项目拆分数组中的值
【发布时间】:2014-07-20 12:52:07
【问题描述】:

我有一个简单的 php 问题。

我对 2 种产品的价值如下。 1 个产品具有密度、风味和 pid 选项 其他产品有选项颜色和pid

产品 1

density: Low 12mg, flavor: Dekang Dark USA Mix, pid: 165 

产品 2

color: Silver, pid: 5 

以上 2 个值在一个数组中

$items[$i]['options']

如何将其转换为以下格式的数组...

product 1-   density => 'Low 12mg, flavor =>  'Dekang Dark USA Mix', pid => '165'
product 2-    color =>  'Silver', pid => '5'

以及如何在 foreach 循环中调用它,以便我分别获取 2 个产品的值?

【问题讨论】:

    标签: php for-loop foreach


    【解决方案1】:

    假设选项值用逗号分隔:

    $myArray = explode(',', $items[$i]['options']);
    

    然后您可以使用该数组来填充您的对象。完整示例:

    $items[0] = array("id" => 1,  
              "options" => 'density: Low 12mg, flavor: Dekang Dark USA Mix, pid: 165');
    $items[1] = array("id" => 2,
              "options" => 'color: Silver, pid: 5');
    
    $newItems = array();
    foreach ($items as $item) {
    
        $options = explode(',', $item['options']);
    
        foreach ($options as $option) {
            $values = explode(':', $option);
            $item[trim($values[0])] = trim($values[1]);
        }
        $newItems[] = $item;
    }
    
    print_r($newItems);
    

    http://sandbox.onlinephpfunctions.com/code/1b4ccc3ee27b53340cabff8d313f4733085e01e2

    【讨论】:

    • 我认为 OP 想让 label: 成为项目片段的关联数组。所以:$item['density'] => 'Low 12mg'.
    • @Xabier 上面的代码不起作用...我已经更正了上面代码中的错误,例如缺少右括号等。
    • 嗯,这只是一个简单的示例,您需要进一步测试,我正在编写完整示例并很快发布
    • @Xabier 此链接属于类似类型的问题。但我无法理解:stackoverflow.com/questions/4335963/…
    • @user3790186 - 在一定程度上,您可能需要获取演示所需内容的代码并将其自定义为您的特定代码序列。例如,将其包装在一个函数中,并在需要时调用该函数。
    猜你喜欢
    • 2020-01-17
    • 2017-10-18
    • 1970-01-01
    • 2014-03-21
    • 2019-05-20
    • 1970-01-01
    • 2015-07-10
    • 2011-08-07
    • 2018-10-15
    相关资源
    最近更新 更多