2016-08-17 7 views
0

Я пытаюсь добавить элементы в ассоциативный массив, это для формы Zend (опции выбора), но по некоторым причинам значения не совпадают с параметрами.Может кто-нибудь, пожалуйста, скажите, почему это не создает ассоциативный массив?

Я использую

$thearray[$test->address1] = $test->address1; 

, которые я бы ожидать, как ключ и значение, чтобы быть точно такой же (значение $test->address1). Что происходит, так это то, что ключ пронумерован (0,1,2,3,4 и т. Д.), Но значение верное, есть ли у кого-нибудь идеи?

Вот мой код

$tests = json_decode($result); 

$testtwo = $tests->_embedded->house ; 

$thearray = array(); 

foreach ($testtwo as $test) { 

    $i = $test->address1; 
    $thearray[$test->address1] = $test->address1; 

}; 

, а затем форма создается как этот

$this->add(array(
    'name' => 'address', 
    'type' => 'Select', 
    'options' => array(
     'label' => 'Address', 
     'value_options' => $thearray, 
     'disable_inarray_validator' => true, 
    ), 
    'attributes' => array(
     'class' => 'form-control', 
     'id' => 'propertyaddress', 
    ), 

)); 

var_dump массива будет

array(365) { 
    [0]=> string(18) "1 property address" 
    [1]=> string(27) "2 another address" 
    [2]=> string(18) "3 another addresst" 
    .... 

var_dump от $ теста (внутри петля)

object(stdClass)#271 (11) { 
     ["id"]=> string(1) "1" ["address1"]=> string(22) "1 property address" 
     ["address2"]=> NULL 
     ["town"]=> string(10) "the town" 
     ["city"]=> string(10) "The city" 
     ["county"]=> string(10) "The county" ["postcode"]=> string(8) "NN11 1NN" 
     ... 

print_r в $ результат будет

{ 
    "_links":{ 
     "self":{ 
     "‌​href":"http:\/\/shop.‌​dev\/house?page=1" 
     }, 
     "‌​first":{ 
     "href":"http:‌​\/\/shop.dev\/house" 
     }  ‌​, 
     "last":{ 
     "href":"http‌​:\/\/shop.dev\/house?‌​page=1" 
     } 
    }, 
    "_embedded" ‌​:{ 
     "house":[ 
     { 
      "id":"1", 
      ‌​"address1":"1 property address", 
      "address2":‌​null, 
      "town":"town", 
      "c‌​ity":"city", 
      "county":‌​"county", 
      "postcode":"‌​NN11 1NN", 
      "branch":"BRANCH NAME", 
      "propertytyp‌​e":"property type", 
      "landlord":"L‌​andlord name", 
      "_links":{ 
       "sel‌​f":{ 
        "href":"http:\/\/‌​shop.dev\/house\/1" 
       } 
      }   ‌​ 
     } 
+2

Пожалуйста, покажите содержимое различных массивов в вопросе – Steve

+0

Также 'var_dump ($ тест);' было бы полезно. –

+0

И оригинальный JSONString в $ result please – RiggsFolly

ответ

0

мне удалось решить эту проблему с помощью;

$c = array_combine($thearray, $thearray); 

, а затем

'options' => array(
      'label' => 'Address', 
      'value_options' => $c, 
      'disable_inarray_validator' => true, 
     ), 

Я не уверен, если это правильное решение, но оно, по крайней мере решить мою проблему.

Спасибо всем за ваш вклад

Clint

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

  • Нет связанных вопросов^_^