我试图让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;
}
答案 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 );
不起作用。它
$args['tags']
。$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手册的链接是: