array_map中的非法字符串偏移量

问题描述 投票:0回答:1

尝试使用函数array_map

 array_map(function ($items) {
                    return $items[$this->relatedKey];
                }, $this->parseIds($ids))

$ ids是item => value的数组:

 $ids = array:1 [
      "parent_id" => "15"
    ]

关键需要找到的东西:

$this->relatedKey = "parent_id"

并得到错误:

Illegal string offset 'parent_id'

我做错了什么?

php arrays laravel
1个回答
1
投票

看一下从文档中获取的这个例子(http://php.net/manual/en/function.array-map.php):

<?php
function cube($n)
{
    return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);

它将返回一个包含1,8,27等的数组......

你用于参数的名称$items是误导性的,因为参数将是你的数组的每个单个$item,并且array_map()应该以某种方式对其进行转换。

我不确定你想做什么,但显然你不会为了你的目的需要array_map()

© www.soinside.com 2019 - 2024. All rights reserved.