如何在php中为每个项目拆分数组中的值

如何在php中为每个项目拆分数组中的值

问题描述:

I have a simple php question.

I have a value like the following for 2 products. 1 product has options density, flavor and pid other product has option color and pid

product 1

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

product 2

color: Silver, pid: 5 

The above 2 values comes in a single array

$items[$i]['options']

How can i convert it into an array of the following format...

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

and how to call it in a foreach loop so that i get values separately for 2 products ?

我有一个简单的php问题。 p>

我的值类似于 以下为2个产品。 1产品有选项密度,味道和pid other产品有选项颜色和pid p>

产品1 strong> p> \ n

 密度:低12mg,风味:Dekang Dark USA Mix,pid:165 
  code>  pre> 
 
 

产品2 strong> p>

  color:Silver,pid:5 
  code>  pre> 
 
 

以上2个值都在一个数组中 p> \ n

  $ items [$ i] ['options'] 
  code>  pre> 
 
 

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

  product 1- density =>  '低12毫克,风味=>  'Dekang Dark USA Mix',pid =>  '165'
产品2- color =>  '银',pid =>  '5'
  code>  pre> 
 
 

以及如何在foreach循环中调用它以便我为2个产品单独获取值? p> div>

Assuming options values are separated by comma:

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

Then you can use that array to fill in your object. Full example:

$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