從我的數據庫中檢索到的結果包含一個包含汽車的數組($resultsCars
)。每輛車的品牌都有一個ID。 Var_dumping陣列的結果如下:PHP:映射數組結果
array(2) {
[0]=>
array(2) {
["brand"]=>
string(36) "2cb4c4d6-b706-e411-8ed9-0050568c4808"
["color"]=>
string(5) "black"
}
[1]=>
array(2) {
["brand"]=>
string(36) "2cb4c4d6-b706-e411-8ed9-0050568c4807"
["color"]=>
string(5) "white"
}
}
我的目標是用品牌的實際名稱替換id。爲了實現這一點,我將使用一個數組,將每個id映射到相應的汽車名稱。 Var_dumping這個陣列($arrData
)結果爲以下:
array(3) {
[0]=>
object(some\path\here)#697 (2) {
["id":"some\path\here":private]=>
string(36) "2cb4c4d6-b706-e411-8ed9-0050568c4806"
["name":"some\path\here":private]=>
string(4) "Audi"
}
[1]=>
object(some\path\here)#697 (2) {
["id":"some\path\here":private]=>
string(36) "2cb4c4d6-b706-e411-8ed9-0050568c4807"
["name":"some\path\here":private]=>
string(8) "Mercedes"
}
[2]=>
object(some\path\here)#697 (2) {
["id":"some\path\here":private]=>
string(36) "2cb4c4d6-b706-e411-8ed9-0050568c4808"
["name":"some\path\here":private]=>
string(3) "BMW"
}
}
爲了創建基於$resultsCars
,並與品牌標識解決的新陣,我曾嘗試下面的代碼:
$resultsMapped = [];
foreach ($resultsCars as $result) {
$result['brand'] = array_search($result['brand'], $arrData);
$resultsMapped[] = $result;
}
品牌領域但是在結果數組中,包含布爾值false
。我究竟做錯了什麼?
問題是'$ arrData'包含的對象(包含你的值)而不是直接包含這些值。我認爲array_search不能像這樣查看對象。此外,在你的對象中'id'和'name'是'private',你可能不得不使用getter來檢查值...可能必須使用自定義函數來搜索'$ arrData' – Random
我沒有看到品牌姓名存在於陣列中 –
@karvin。開發者的品牌是'2cb4c4d6-b706-e411-8ed9-0050568c4806',並在$ arrData中加入'id' – Random