2011-07-12 3 views
0

У меня естьдобавить ключевое значение в массиве

$test = array(); 

if(isset($ln[8])){ 
    $test[] .= $id[0].'=>'.$ln[14]; 
}  

Но он помещает массив как этот

array (
      [0]=> 6525 => 120 
      [1]=> 6521 => 1243 
      [2]=> 5214 => 1674 
      [3]=> 6528 => 155 
) 

, тогда как я хочу, чтобы это сделать

array (
      6525 => 120 
      6521 => 1243 
      5214 => 1674 
      6528 => 155 
) 

Как бы я сделай это.

ответ

5

Что вы делаете, это добавить строку, состоящую из, например, «6525 => 120» для каждого элемента массива. Вы действительно хотите добавить значение из $ lan [14] (например, целочисленное значение 120) в позицию $ id [0] (например, 6525). Это, как вы делаете это с обычным синтаксисом массива:

$test[$id[0]] = $ln[14]; 

Обратите внимание, как я отношусь к $id[0] как ключ к $test массива. Это могло быть целое число 6265, строка со значением "hello", переменная с именем $key, вызов функции или в этом случае элемент из другого массива.

1

Попробуйте

$test[$id[0]] = $ln[14]; 

Ваша ошибка состоит в том, что вы пытаетесь добавить строку в массив, и вы должны использовать id в качестве ключа и ln в качестве значения.

2

Вы хотите сделать индекс $id[0], тогда как в настоящее время вы объединяете строку вместе как значение.

Попробуйте следующее:

$test[$id[0]] = $ln[14]; 

Я также рекомендую вам посмотреть на CakePHP's Set Class.

Смежные вопросы