2017-07-26 46 views
-2

我已經試過這行代碼可以顯示陣列的關鍵:設置一些數組值作爲數組

foreach($users_array as $value){  
    echo "<pre>"; 
    print_r($value);      
} 

其中顯示該類型的數組。

Array 
(
    [auto_id] => 45 
    [id] => 20151116 
    [name] => Peter 2 
    [department] => 
    [position] => 
    [rate] => 300 
    [date_added] => 2017-07-26 09:31:44 
) 
Array 
(
    [auto_id] => 80 
    [id] => 20160410 
    [name] => John 2 
    [department] => 
    [position] => 
    [rate] => 400 
    [date_added] => 2017-07-26 09:31:48 
) 

現在我想要做的是讓僱員的id成爲數組的關鍵,並使他們成爲一個多維數組。

實施例輸出應該是這樣的:

Array 
(
    [20151116] => Array 
    (
     [auto_id] => 45 
     [id] => 20151116 
     [name] => Peter 2 
     [department] => 
     [position] => 
     [rate] => 300 
     [date_added] => 2017-07-26 09:31:44 
    ) 

    [20160410] => Array 
    (
     [auto_id] => 80 
     [id] => 20160410 
     [name] => John 2 
     [department] => 
     [position] => 
     [rate] => 400 
     [date_added] => 2017-07-26 09:31:48 
    ) 

) 

任何幫助理解。謝謝。

回答

0

在這裏,你需要改變

$final = array(); 
    foreach($users_array as $value){  
     $final[$value["id"]] = $value;     
    } 
     echo "<pre>"; 
     print_r($final); 
0

使用功能array_column()和array_combine(),像這樣:

$employee_id = array_column($users_array,'id'); 
$users_array = array_combine($employee_id,$users_array); 
1

這可能是最容易的一個新的數組,你直接輸出,並循環現有陣列,將id設置爲新陣列的索引:

<?php 

$newArray = array(); 

foreach($users_array as $value) { 
    $newArray[$value["id"]] = $value; 
    print_r($newArray); 
} 

希望這有助於! :)

+0

感謝您的幫助,但呼應循環內的數組將無法正常工作。 –

+0

你總是可以把它放在循環之外。我對你的確切結構有點不確定,因爲你目前似乎沒有輸出單個數組,但是有兩個不同的數組(你的'print_r()'是當前循環內部的)。 –