[英]PHP Create Associative Array from two arrays
我需要通過將第一個數組中的“ cat_id”與第二個數組中的“ parent_id”匹配,將第二個數組推入第一個數組。
我有第一個數組-$ categories:
[
{
"cat_id": "350",
"parent_id": "0",
"cat_name": "Category 1"
}
]
第二個數組-$ topics:
[
{
"cat_id": "351",
"parent_id": "350",
"cat_name": "Topic 1",
},
{
"cat_id": "352",
"parent_id": "350",
"cat_name": "Topic 2",
}
]
我想要這個:
[
{
"cat_id": "350",
"parent_id": "0",
"cat_name": "Category 1",
"topics": [
{
"cat_id": "351",
"parent_id": "350",
"cat_name": "Topic 1",
},
{
"cat_id": "352",
"parent_id": "350",
"cat_name": "Topic 2",
}
]
}
]
我在想嵌入的foreach循環可能是答案,但仍在篩選所有PHP數組函數以嘗試找出是否有一個現成的函數可以做到這一點: http : //php.net/manual/ zh / ref.array.php
簡短的答案是:
foreach ( $categories AS &$category ) {
foreach ( $topics AS $topic ) {
if ( $category[ 'cat_id' ] == $topic[ 'parent_id' ] ) {
$category[ 'topics' ][] = $topic;
}
}
}
這個完整的腳本應該(我希望)展示您所追求的行為。
<?php
$categories = array(
[
"cat_id" => "350",
"parent_id" => "0",
"cat_name" => "Category 1",
"topics" => []
]
);
$topics = array (
[
"cat_id" => "351",
"parent_id" => "350",
"cat_name" => "Category 1 Topic 1",
],
[
"cat_id" => "352",
"parent_id" => "350",
"cat_name" => "Category 1 Topic 2",
]
);
foreach ( $categories AS &$category ) {
foreach ( $topics AS $topic ) {
if ( $category[ 'cat_id' ] == $topic[ 'parent_id' ] ) {
$category[ 'topics' ][] = $topic;
}
}
}
echo '<pre>';
print_r( $categories );
echo '</pre>';
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.