2017-04-06 48 views
-2

新陣列的關鍵我有這個數組多維數組的設置值到使用PHP

array (
    0 => array ('sno' => 'q3', 'result' => '15',), 
    1 => array ('sno' => 'q1', 'result' => '5',), 
    2 => array ('sno' => 'q2', 'result' => '10',), 
) 

我想這個結果數組

array ( 
    'q3' => '15', 
    'q1' => '5', 
    'q2' =>'10' 
) 

如果可能的話,而無需使用任何循環? 如果是那麼如何?

+1

你嘗試過什麼?看看[PHP數組函數]列表(http://php.net/manual/en/ref.array.php)。 – axiac

+0

[array_column()](http://www.php.net/manual/en/function.array-column.php)是你正在尋找的功能 –

+0

我已經用forech loop –

回答

0

這是你的輸入數組,

$arr= array (
    0 => array ('sno' => 'q3', 'result' => '15',), 
    1 => array ('sno' => 'q1', 'result' => '5',), 
    2 => array ('sno' => 'q2', 'result' => '10',), 
); 

這裏是一個班輪代碼:

$result = array_combine(array_column($arr, 'sno'), array_column($arr, 'result')); 
// $result = array_column($arr,'result','sno'); 

我在做什麼是

  1. array_column將涉及到特定的鍵數組提取所有的值,所以我拿來兩個數組值的特定鍵
  2. 然後,我用了一個數組用於array_combine創建一個數組鍵和另一個值。

這裏是輸出:

Array 
(
    [q3] => 15 
    [q1] => 5 
    [q2] => 10 
) 

這裏是工作的代碼

click here

0

使用array_reduce()您可以從數組中創建包含自定義鍵/值的新數組。

$newArr = array_reduce($oldArr, function($carry, $item){ 
    $carry[$item["sno"]] = $item["result"]; 
    return $carry; 
}); 

校驗碼結果demo