Помогите понять функцию php - значение $ array []; часть - PullRequest
1 голос
/ 17 сентября 2010
private function jsonArray($object)
{
  $json = array();

   if(isset($object) && !empty($object))
   {
      foreach($object as $obj)
      {
        $json[]["name"] = $obj;
      }
   }

   return $json;
}

Мы берем объект, и если выполняется условие, мы выполняем итерацию по этому объекту.Тогда ... Я потерялся в этом чтении ...: s

Что означает здесь []?

$json[]["name"] = $obj;

Заранее спасибо, MEM

Ответы [ 4 ]

4 голосов
/ 17 сентября 2010

$json[] добавляет элемент в конец массива (числовой индекс). Это то же самое, что следующий код:

$array=array();
$i=0;
foreach($something as $somethingElse)
{
    $array[]=$somethingElse;
    //is equivalent, in some way, to
    $array[$i++]=$somethingElse;
}
2 голосов
/ 17 сентября 2010

$ json [] автоматически создает новый элемент в конце массива - вот пример:

$json[]["name"] = "object1";
$json[]["name"] = "object2";
$json[]["name"] = "object3";
$json[]["name"] = "object4";

А вот что он показывает:

Array
(
    [0] => Array
        (
            [name] => object1
        )

    [1] => Array
        (
            [name] => object2
        )

    [2] => Array
        (
            [name] => object3
        )

    [3] => Array
        (
            [name] => object4
        )

)
2 голосов
/ 17 сентября 2010

Добавляет содержимое $obj в новое поле в $json и в поле "name".

Маленький пример:

$arr = array();
$arr[] = "Hello";
$arr[] = "World!";

Тогда $arr будет содержать:

Array (
 0 => "Hello",
 1 => "World!"
)

Или, как в вашем примере с другим массивом в поле:

$arr = array();
$arr[]["text"] = "Hello";
$arr[]["text"] = "World!";

Становится

Array (
 0 => Array (
  "text" => "Hello"
 ),
 1 => Array (
  "text" => "World!"
 )
)
2 голосов
/ 17 сентября 2010

Это эквивалентно этому:

$json[] = array('name' => $obj);
...