我有一個 3d 陣列:
{
"code": num,
"payload": [
{
"2nd array": [
{
"msg": "some message",
"val": "some val"
}
]
}
]
}
我需要在沒有2nd array值的情況下列印它,如下所示:
{
"code": num,
"payload": [
{
"msg": "some msg"
}
]
}
這是我制作陣列的方法:
foreach ($orig_array as $arr) {
$res[$i]["2nd array"][] = array(
"msg" => $arr["some_message"],
"val" => $arr["some_value"],
);
}
有沒有一種我沒有看到的簡單方法來做到這一點?在發送回應之前,我曾嘗試將陣列展平或回圈遍歷它,但我無法將它變成那種形狀。
編輯:
我想只洗掉第二個陣列,但我不能改變它,因為它不是我的代碼,它是遺留的,它會破壞許多其他東西。
uj5u.com熱心網友回復:
#just to get the data from your example, the payload
$args = '[
{
"2nd array": [
{
"msg": "some message",
"val": "some val"
}
]
},
{
"2nd array": [
{
"msg": "some message",
"val": "some val"
}
]
}
]';
$arr = json_decode($args,true);
#that is what you can do in 1 line
$arr = array_merge(...array_map(fn($a) => $a['2nd array'] ,$arr));
#then use $arr in the response
var_export($arr);
編輯:切換到 array_map 版本
uj5u.com熱心網友回復:
$arr = '{
"code": 1,
"payload": [
{
"2nd array": [
{
"msg": "some message",
"val": "some val"
}
]
},
{
"2nd array": [
{
"msg": "some message",
"val": "some val"
}
]
}
]
}';
$arr = json_decode($arr,true);
$new_arr = [];
foreach($arr['payload'] as $key => $inside){
foreach($inside as $n => $val ) {
$new_arr[] = current($val);
unset($arr['payload'][$key]);
}
}
$arr['payload'] = $new_arr;
print_r($arr);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/526606.html
標籤:php数组
上一篇:如何在python中將二維陣列轉換為兩個不同的一維陣列
下一篇:為什么我的串列有多余的雙括號?
