2015-01-22 2 views
-6

Я генерировать PHP массив так:Как сгенерировать массив в PHP?

$val = array("request"=>array(
        "First Name"=>'xxxx', 
        "Last NAme"=>'xxx', 
        "yourAddress"=>array(
          "Address" => array(
           "City" => 'abc', 
           "State" => 'xyz', 
          ), 
          "Address" => array(
           "City" => 'def', 
           "State" => 'hij', 
          ), 
        ) 
      )); 

Но когда я запускаю этот массив в то время yourAddress массив перезаписать и возвращать только последнее значение, как Защиту и HIJ. Мне нужно и значение, и массив, например, Адрес также печать.

Возможно ли это?

+0

Подробнее о [массивах] (http://php.net/manual/en/book.array.php) в руководстве по PHP. – axiac

+5

Молитесь сказать, как массив может содержать ** одну и ту же клавишу дважды ** ?! Как вы ожидаете, что это сработает? Вероятно, вам просто не нужен ключ (неявные цифровые клавиши). – deceze

+0

Только что заметил, что вы отменили изменение, которое я сделал 6 ноября. Я вернул ваши изменения, так как мой был прав, и если я поймаю, что вы снова это сделаете, вы получите флаг модератора. Я также отказался от этого вопроса. Обратите внимание, что запросы на срочность не относятся к вопросам - ваш вопрос не более важен, чем другие, и в любом случае по старому вопросу он лишний. – halfer

ответ

2

Массивы не могут иметь один и тот же ключ дважды, они должны быть уникальными. Однако вы можете:

$val = array(
    "request" => array(
     "First Name" => 'xxxx', 
     "Last NAme" => 'xxx', 
     "yourAddress" => array(
      "Address" => array(
       array(
        "City" => 'abc', 
        "State" => 'xyz', 
       ), 
       array(
        "City" => 'def', 
        "State" => 'hij', 
       ) 
      ), 
     ) 
    ) 
); 
2

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

$val = array("request"=>array(
    "First Name"=>'xxxx', 
    "Last NAme"=>'xxx', 
    "yourAddress"=>array(
     array(
      "City" => 'abc', 
      "State" => 'xyz', 
     ), 
     array(
      "City" => 'def', 
      "State" => 'hij', 
     ), 
    ) 
)); 

Тогда вы можете получить значение с $ Валу [ «запрос»] [ «yourAddress»] [0];

+0

Я использую один wsdl services.it не принимается 0 и 1 индекс массива. он принимает тот же самый массив ключей. –

+0

Можно ли использовать ['address1'] и ['address2']? –

+0

используется как [адрес] и [адрес]. –

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