Php 如何在foreach循环中向高级数组添加元素
我试图将数据添加到foreach循环中的数组中 我几乎成功地完成了,只是阵列太深了 它正在显示数组->数组->{我想要什么} 当我需要数组->{我想要的} 例如,我需要它像:Php 如何在foreach循环中向高级数组添加元素,php,arrays,foreach,Php,Arrays,Foreach,我试图将数据添加到foreach循环中的数组中 我几乎成功地完成了,只是阵列太深了 它正在显示数组->数组->{我想要什么} 当我需要数组->{我想要的} 例如,我需要它像: Array ( [home] => Array ( [0] => Dashboard\Main@index [1] => GET ) [home/] => Array ( [0] => Dashboard\Main@in
Array
(
[home] => Array
(
[0] => Dashboard\Main@index
[1] => GET
)
[home/] => Array
(
[0] => Dashboard\Main@index
[1] => GET
)
)
此时此刻,它正在显示:
Array
(
[0] => Array
(
[services/content-writing] => Array
(
[0] => Dashboard\Services@contentwriting
[1] => GET
)
)
[1] => Array
(
[services/pbn-links] => Array
(
[0] => Dashboard\Services@pbnlinks
[1] => GET
)
)
)
我当前在foreach循环中使用的代码是:
$realArray = array();
// Services exist
if($services)
{
// Sort them into our array
foreach ($services as $service) {
$servicePageName = $service->page_name;
$serviceName = str_replace(' ', '', strtolower($service->name));
$realArrayNew = array(
"services/$servicePageName" => ["Dashboard\Services@$serviceName", 'GET']
);
array_push($realArray, $realArrayNew);
//'home' => ['Dashboard\Main@index', 'GET'],
}
}
return $realArray;
这部分代码将向主阵列插入一个新的子阵列:
$realArrayNew=array(
“services/$servicePageName”=>[“Dashboard\services@$serviceName”,“GET']
);
阵列推送($realArray,$realArrayNew);
全部替换为:
$realArray[“services/$servicePageName”]=[“Dashboard\services@$serviceName”,“GET'];
这样,顶级将服务名称作为键。要获得所需的结果,
servicePageName
变量必须是realArray
上的键字段
我假设您的输入对象数组如下所示:
[
(int) 0 => object(stdClass) {
name => 'contentwriting'
page_name => 'content-writing'
},
(int) 1 => object(stdClass) {
name => 'pbnlinks'
page_name => 'pbn-links'
}
]
如果我们这样做:
$realArray = [];
if ($services) {
foreach ($services as $service) {
$servicePageName = $service->page_name;
$serviceName = str_replace(' ', '', strtolower($service->name));
$realArray["services/$servicePageName"] = [
0 => "Dashboard\Services@$serviceName",
1 => "GET"
];
}
}
这就是我们在realArray上看到的内容:
[
'services/content-writing' => [
(int) 0 => 'Dashboard\Services@contentwriting',
(int) 1 => 'GET'
],
'services/pbn-links' => [
(int) 0 => 'Dashboard\Services@pbnlinks',
(int) 1 => 'GET'
]
]