2013-05-14 66 views
0

我有數組1,它應該是2Manipulate array foreach

有沒有人有想法/解決方案?

我需要foreach還是for循環?

1.

Array 
(
[0] => Array 
    (
     [category_id] => 5 
     [category] => Pages 
    ) 

必須是:

Array 
(
[0] => Array 
    (
     [5] => Pages 
    ) 

我有這個但這doent工作...

for($x = 0; $x <= $counter; $x++){ 
     foreach ($Categories[$x] as $key => $value){ 
      echo $key.' '. $value.'<br>'; 
     } 
     $test[$x]['category_id'] .= $Categories[$x]['category']; 
    } 

感謝您的幫助!

+0

是的,你需要用'foreach'。 – Rikesh 2013-05-14 06:38:31

+0

你想'(unset)'ID嗎? – 2013-05-14 06:39:14

+0

$ arr [$ i] = array($ arr ['category_id'] => $ arr ['category']);像這樣的循環應該工作我不知道你到底想要什麼。 – Robert 2013-05-14 06:40:31

回答

2

代碼:

<?php 

$arr = array(
    array(
     'category_id' => 5  , 
     'category' => 'Pages', 
    ), 
); 

$new = array(); 
foreach ($arr as $item) { 
    $new[] = array(
     $item['category_id'] => $item['category'] 
    ); 
} 

print_r($new); 

結果:

Array 
(
    [0] => Array 
     (
      [5] => Pages 
     ) 

) 
+0

作品!謝謝! – Bas 2013-05-14 06:57:54

2
$output=array(); 
foreach($array as $k=>$v) 
{ 
    $output[$v['category_id']]=$v['category']; 
} 

echo "<pre />"; 
print_r($output); 

Demo1

Demo 2

爲multidimensinal結果:

$output=array(); 
foreach($array as $k=>$v) 
{ 
    $output[][$v['category_id']]=$v['category']; 
} 

echo "<pre />"; 
print_r($output); 
+0

+1不錯,精確。 – NullPointer 2013-05-14 06:47:20

+0

我認爲@Bas需要多個解析結果。 – mpyw 2013-05-14 06:53:42

+0

@CertaiN檢查多維結果的答案 – 2013-05-14 06:55:44

1

就像你說的,你需要一個foreach循環manupulate你陣列。

$array = array 
(
'0' => array 
    (
     'category_id' => '5', 
     'category' => 'Pages' 
    ) 
); 


$new_array = array(); 
foreach($array as $val) 
{ 
    $new_array[$val['category_id']] = $val['category']; 
} 

var_dump($new_array); 

這將輸出

array(1) { [5]=> string(5) "Pages" }