2016-09-21 7 views
1

У меня есть следующий массив с 2-х элементов:PHP Преобразовать Вложенный массив Формат

$attribute_metric = array(2) 
{ 
    [0]=> 
    array(2) { 
    [0]=> 
    string(5) "white" 
    [1]=> 
    string(6) " Black" 
    } 
    [1]=> 
    array(3) { 
    [0]=> 
    string(1) "S" 
    [1]=> 
    string(2) " L" 
    [2]=> 
    string(2) " M" 
    } 
} 

и я хочу, чтобы объединить его элементы в пути, где я получаю один массив, который имеет 6 элементов, в которых каждый элемент должен выглядеть как это

[option_value] => Array(
    [0] => Array(
    [value] => white 
) 

    [1] => Array(
    [value] => S 
) 
) 

Я попытался следующие, но я до сих пор не может приблизиться к тому, что я хочу добиться:

$final_attribute_metric = array(); 
     foreach ($attribute_metric[0] as $first_attribute) { 
      foreach ($attribute_metric[1] as $second_attribute) { 
       $final_attribute_metric[] = [$first_attribute,$second_attribute]; 
      } 
     } 

ответ

2

Я не уверен, что именно вы пытаетесь придумать ... но если вы пытаетесь согласовать каждый массив размером с каждым массивом цвета, тогда вы можете сделать следующее. ..

$new = []; 
foreach($attribute_metric[0] as $colors) { 

    foreach($attribute_metric[1] as $size) { 
    array_push([ ['value'=>$color],['value'=>$size] ]);  
    } 

} 

результат должен быть ...

SixElementsArr = [ 

    0 => [ 
     0 => ['value'=>'white'] 
     1 => ['value'=>'S'] 
     ] 
...//so on 
] 
+0

на самом деле то, что я хочу, чтобы достичь является массив из 6 элементов (представляет собой комбинацию из массива (белый, черный) с (S, L, M)) где каждый элемент содержит массив «option_value», как показано в вопросе (пример показывает значения «белый» и «S», но мне нужен массив, содержащий все комбинации) – Alladin

+0

Спасибо, победитель. это то, что я хотел – Alladin

Смежные вопросы