我正在使用array\\u map对一个包含我所有的\\u octopud\\u id的数组进行排序。
var_dump($offices)
: 返回以下内容:
array (size=500)
0 =>
array (size=1)
\'id\' => string \'1382\' (length=4)
1 =>
array (size=1)
\'id\' => string \'1330\' (length=4)
我需要将该数组整数输入到“employees/”部分,但我不知道如何输入-如果我硬编码
employees/6
我得到以下结果:
object(stdClass)[14592]
public \'id\' => int 6
我会做错什么?我一直得到
Notice: Array to string conversion
$results=行出错。
/* Return an array of _octopus_ids */
$offices = array_map(
function($post) {
return array(
\'id\' => get_post_meta($post->ID, \'_octopus_id\', true),
);
},
$query->posts
);
var_dump($offices);
$results = $octopus->get_all(\'employee/\' . implode($offices));
var_dump($results);
SO网友:Jacob Peattie
仔细观察$offices
:
array (size=500)
0 =>
array (size=1)
\'id\' => string \'1382\' (length=4)
1 =>
array (size=1)
\'id\' => string \'1330\' (length=4)
这不是ID数组。这是一个由数组组成的数组。
$offices[0]
不是
\'1382\'
. 这是一个数组。所以
implode()
在…上
$offices
正在尝试串联数组,这是导致错误的原因。
错误的原因是您如何使用array_map
. 如果要为数组中的每个帖子返回此元值,则应仅返回值,而不返回新数组:
$offices = array_map(
function($post) {
return get_post_meta($post->ID, \'_octopus_id\', true);
},
$query->posts
);
现在
$offices
将是一个ID数组,可以内爆。