Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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
Arrays Laravel方法,在深度嵌套的数组中使用;点“;符号_Arrays_Laravel - Fatal编程技术网

Arrays Laravel方法,在深度嵌套的数组中使用;点“;符号

Arrays Laravel方法,在深度嵌套的数组中使用;点“;符号,arrays,laravel,Arrays,Laravel,Arr::add不适用于dot表示法Arr::set将仅在新元素不存在时创建新元素,否则将覆盖现有元素。有data\u set,它的工作原理类似于Arr::set,但它接受overwrite标志,该标志不满足我的需要(如果它设置为false而不是添加新项,它将跳过设置新值) 我的代码: $array = [['name' => 'Test', 'link' => 'test_link'], ['name' => 'Test1', 'link' => 'test1_l

Arr::add
不适用于
dot
表示法
Arr::set
将仅在新元素不存在时创建新元素,否则将覆盖现有元素。有
data\u set
,它的工作原理类似于
Arr::set
,但它接受
overwrite
标志,该标志不满足我的需要(如果它设置为false而不是添加新项,它将跳过设置新值)

我的代码:

   $array = [['name' => 'Test', 'link' => 'test_link'], ['name' => 'Test1', 'link' => 'test1_link']];

   $result = [];
   $position = 1;
   foreach($array as $element) {
      Arr::set($result, 'itemListElement.type', 'ListItem');  
      Arr::set($result, 'itemListElement.position', $position);  
      Arr::set($result, 'itemListElement.item.name', $element['name']);  
      Arr::set($result, 'itemListElement.item.link', $element['link']);  
      $position++;
   }
我希望在
itemListElement
父元素中有多个
list元素
,而不是一个一直被覆盖的
list元素

下面是它的外观:

[
    "itemListElement" => [
        [
            "type" => "ListItem",
            "position" => 1,
            "item" => [
                "name" => "Test",
                "url" => "test_url",
            ]
        ],
        [
            "type" => "ListItem",
            "position" => 1,
            "item" => [
                "name" => "Test1",
                "url" => "test1_url",
            ]
        ],
    ]
]
你能试试这个吗

 $array = [['name' => 'Test', 'link' => 'test_link'], ['name' => 'Test1', 'link' => 'test1_link']];

   $result = [];
   foreach($array as $key=>$element) {
      Arr::set($result["itemListElement"][$key], 'type', 'ListItem');  
      Arr::set($result["itemListElement"][$key], 'position', $key + 1);  
      Arr::set($result["itemListElement"][$key], 'item.name', $element['name']);  
      Arr::set($result["itemListElement"][$key], 'item.link', $element['link']);  
   }

$result;