将数组合并到没有键的数组?

时间:2011-06-21 10:06:39

标签: php facebook multidimensional-array

我试图让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 个答案:

答案 0 :(得分:1)

更新2:

请阅读有关数组的信息:PHP manual arrays。即使您没有指定,数组中的每个元素都有一个键。没有键,你不能在数组中有一个元素。

定义数组之间存在差异,您无需指定键,打印数组,这为您提供了数组的文本表示

更新:所以它似乎必须

$args['tags'] = $id;

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


旧回答:

您已经在谈论 merge 。你看过array_merge[docs]了吗?

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

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

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

答案 1 :(得分:0)

我建议使用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" } }

涵盖契约的php手册的链接是:

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