Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在foreach循环中向高级数组添加元素_Php_Arrays_Foreach - Fatal编程技术网

Php 如何在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

我试图将数据添加到foreach循环中的数组中

我几乎成功地完成了,只是阵列太深了

它正在显示数组->数组->{我想要什么} 当我需要数组->{我想要的}

例如,我需要它像:

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'
    ]
]