2016-06-08 156 views
-2

我有這樣合併兩個陣列索引在PHP

foreach($tests as $test){ 
     if($test=='true') { 
       $temp[]['name']='a'; 
       $temp[]['child']='b'; 
      } 
      else{ 
       $temp[]['name']='c'; 
       $temp[]['child']='d'; 
      } 
     } 
prtint_r($temp); 

結果代碼是:

[{ 「名稱」: 「C」},{ 「孩子」: 「d」 },{ 「名稱」: 「C」},{ 「孩子」: 「d」},{ 「名稱」: 「一個」},{ 「孩子」: 「b」},{ 「名稱」: 「c」 的},{ 「孩子」: 「d」}]

但我想這樣的結果:

[[{「name」:「c」},{「child」:「d」}],[{「name」:「c」},{「child」:「d」}],[{「名稱「:」a「},{」child「:」b「}],[{」name「:」c「},{」child「:」d「}]]

+0

發佈你的數組'$ tests' ... – 2016-06-08 07:49:32

+0

我編輯我的帖子.. – paranoid

回答

3

一次

foreach($tests as $test){ 
    if($test=='true') { 
      $temp[] = ['name'=>'a', 'child'='b']; 
     } 
     else{ 
      $temp[] = ['name' => 'c', 'child'='d']; 
     } 
    } 
prtint_r($temp); 
1

,每次PHP讀取$array[]它讀取它作爲一個新的數組鍵,

$array[] = 1; //Key 0 
$array[] = 2; //Key 1 
$array[] = 3; //Key 2 
$array[] = 4; //Key 3 

要分配/控制,你可以使用多種方法的關鍵,簡單一些的一個都像這樣。

$i = 0; 
foreach($array as $value){ 
    $array[$i]['name'] = 'Jamie'; 
    $array[$i]['age'] = 1; 

    $i++; 
} 

每個foreach循環運行$i變量將增加,並指定你的陣列上運行的每個通過一個新的關鍵時期。

結果:

Array 
(
    [0] => Array(
     [name] => Jamie 
     [age] => 1 
    ) 
    [1] => Array(
     [name] => Jamie 
     [age] => 1 
    ) 
) 
2

加入陣列,而不是兩個項目重用你$tests鍵時分配值來獲得相同的密鑰......

foreach($tests as $k=>$test){ 
    if($test=='true') { 
      $temp[$k]['name']='a'; 
      $temp[$k]['child']='b'; 
     } 
     else{ 
      $temp[$k]['name']='c'; 
      $temp[$k]['child']='d'; 
     } 
    } 
    var_dump($temp); 
1
$i = 0; 
foreach ($tests as $test) { 
    if ($test == 'true') { 
    $temp[$i] = array('name' => 'a', 'child'='b'); 
    } else { 
    $temp[$i] = array('name' => 'c', 'child'='d'); 
    } 
    $i++; 
} 
prtint_r($temp);