我有一個 PHP 數組main_array,在我的模板文件中我有一個訪問這個數組的函數。在該函數中,我有另一個函數可以main_array根據實際前端頁面上查詢的任何鍵獲取和顯示值。main_array我使用它來獲取基于 URL 或頁面 ID 或其他查詢的元數據。示例:在前端頁面中,我有$prod_id = [ ["query" => "prod-1"], ["query" => "prod-2"]];在main_array我有$main_array = [ ["name" => "prod-1", "tags" => "lilac, rose, wood"], ["name" => "prod-2", "tags" => "wood, plastic"]];在模板文件中,我有一個循環(huán)和查找函數,它獲取相關產品的標簽并為每個產品創(chuàng)建一個數組function lookup($lookup_value, $lookup_array, $lookup_column, $result_column) { foreach ($lookup_array as $item) { if ($item[$lookup_column] == $lookup_value) { return $item[$result_column]; } } return false;} foreach ($prod_id as $tags) { $result = lookup($tags["query"],$main_array,"name","tags");}這很好用,它將使用兩組標簽創(chuàng)建兩個數組。我遇到的問題是合并由查找函數創(chuàng)建的數組,這樣我就可以獲得唯一值 - 我不希望標簽“木頭”出現(xiàn)兩次。我已經搞砸了array_merge一段時間,但它沒有按預期輸出。
1 回答

慕田峪9158850
TA貢獻1794條經驗 獲得超7個贊
我想你很接近了,只是少了幾步
$unique_tags = [];
foreach ($prod_id as $tags) {
$result = lookup($tags["query"],$main_array,"name","tags");
// `tags` is a string, so explode it to get an array
$result_as_array = explode( ',', $result );
// merge like you mentioned
$merged_array = array_merge( $unique_tags, $result_as_array );
// make sure there's no duplicate entries
$merged_array_no_duplicates = array_unique( $merged_array );
// re-assign to the array where you want to store all tags
$unique_tags = $merged_array_no_duplicates;
}
- 1 回答
- 0 關注
- 101 瀏覽
添加回答
舉報
0/150
提交
取消