将数组合并到不带键的数组



im试图让facebook上传与随机标签好友的照片。程序运行正确,但我在阵列上得到了堆栈

$args = array(  
    'message' => 'Test Tags Text',  
    "access_token" => $access_token,  
    "image" => $files,
    'tags'    => $id,
); 

$id是数组好友列表,此处为格式

$friends = $facebook->api('/me/friends'); 
$frand = array_rand( $friends['data'], 20 );
foreach($frand as $fid){ 
    $id[$fid]['tag_uid'] =  $friends['data'][$fid]['id'];
$id[$fid]['x']  = 0;
$id[$fid]['y']  = 0;
}

更新2:

请阅读数组:PHP手动数组。数组中的每个元素都有一个键,即使您没有指定它。数组中不能有没有键的元素。

定义数组(不必指定键)和打印阵列(提供数组的文本表示)之间存在差异。

更新:所以看起来必须是

$args['tags'] = $id;

$id已经是一个数组。若将其传递给array,它将创建一个以$id为第一个元素的新数组。


旧答案:

您已经在谈论合并。您看过array_merge[docs]吗?

$args['tags'] = array_merge($args['tags'], $id);

当然,$args['tags'] = array( $id );不起作用。它

  1. 覆盖$args['tags']的现有值
  2. 正如您已经注意到的,它将已经是一个数组的$id添加到一个数组中。如果$args['tags']没有值,可以只执行$args['tags'] = $id;

我建议使用compact($example1、$example2、$example3),但结果将与您可能习惯的数组合并不同:

$example1 = array (x,y,z);
$example2 = array (a,b,c);
$example3 = array (d,e,f);
$mergedValue = compact('example1','example2','example3');
var_dump ($mergedValue);
// output will be:
array(3) { ["example1"]=> array(3) { [0]=> string(1) "x" [1]=> string(1) "y" [2]=> string(1) "z" } ["example2"]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" } ["example3"]=> array(3) { [0]=> string(1) "d" [1]=> string(1) "e" [2]=> string(1) "f" } }

包含compact的php手册链接为:

http://php.net/manual/en/function.compact.php

相关内容

  • 没有找到相关文章

最新更新