объединить массив в массив без ключа? - PullRequest
0 голосов
/ 21 июня 2011

я пытаюсь заставить фейсбук загружать фото со случайным тегом друга.программа была запущена правильно, но я получил стек в массиве

$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 ]

1 голос
/ 21 июня 2011

Обновление 2:

Пожалуйста, прочитайте о массивах: Ручные массивы PHP . Каждый элемент в массиве имеет ключ, даже если вы его не указали. Вы не можете иметь элемент в массиве без ключа.

Существует разница между определением массива, в котором не нужно указывать ключи, и печатью массива, который дает текстовое представление массива.

Обновление: Так что, похоже, должно быть

$args['tags'] = $id;

$id - это уже массив. Если вы передадите его в array, он создаст новый массив с $id в качестве первого элемента.


Старый ответ:

Вы уже говорите о слиянии . Вы смотрели на array_merge [документы] ?

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

Конечно, $args['tags'] = array( $id ); не работает. Это

  1. Перезаписывает уже существующее значение $args['tags'].
  2. Как вы уже заметили, он добавляет $id, который уже является массивом, к массиву. Если $args['tags'] не имеет значения, вы можете просто сделать $args['tags'] = $id;.
0 голосов
/ 21 июня 2011

Я бы предложил использовать 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, где рассматривается compact:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...