2016-09-16 6 views
0
array(1) { 
    ["value"] => array(1000) { 
    [0]=> array(9) { 
     ["PartitionKey"]=> string(11)"AWT-GPI.com" 
     ["RowKey"]=> string(36) "0024a6ac-6cf1-454a-91b2-15bfec3a3d86" 
     ["Timestamp"]=> string(28) "2016-09-09T20:16:26.8674483Z" 
     ["Email"]=> string(20) "[email protected]" 
     ["First_Name"]=> string(8) "Jennifer" 
     ["Hash"]=> string(32) "d656d0c21b8f3c14fe03232bb68d1b53" 
     ["IP_1"]=> string(0) "" 
     ["Last_Name"]=> string(5) "Young" 
     ["Username"]=> string(9) "flacobell" 
    } 
    [1]=> array(9) { 
     ["PartitionKey"]=> string(11) "AWT-GPI.com" 
     ["RowKey"]=> string(36) "002c00c4-e064-43e8-9dd8-319c8d6663bd" 
     ["Timestamp"]=> string(28) "2016-09-09T20:19:54.5500874Z" 
     ["Email"]=> string(22) "[email protected]" 
     ["First_Name"]=> string(1) "G" 
     ["Hash"]=> string(32) "1444a7b2c86506158013d1175137eede" 
     ["IP_1"]=> string(0) "" ["Last_Name"]=> string(6) "Wilson" 
     ["Username"]=> string(13) "misterspeed76" 
    } 
    } 
} 

Это то, что я получаю, когда я вызываю свой API, теперь это всего лишь один образец. Если вы видите, что есть [0], который указывает запись 1 и [1], которая указывает вторую запись. Их больше, но я сократил его. Сейчас я могу это сделатьPHP JSON Array Loop

foreach ($null_check['value'] as $key => $data) { 
     // Get rid of '_' in Website Names 
     $new = str_replace('_', ' ', $data['PartitionKey']); 
     echo 'Website: '.$new.'<br>'; 
     echo 'Email: '.$data['Email'].'<br>'; 
    } 

, который позволяет мне получить все электронные и такой

Но я хочу, чтобы иметь возможность принять [0] и формат, который так делает петлю. Это как-то связано с i++, но я этого не понимаю.

Вот что я действительно хочу:

PartitionKey: AWT-GPI.com 
Email: [email protected] 
First Name: Jennifer 
Last Name: Young 
Hash: d656d0c21b8f3c14fe03232bb68d1b53 

Как вы можете видеть, что я взял некоторые из вещей и переставить его. Мне было интересно, возможно ли это, используя foreach. Тем не менее, каждая запись может отличаться, поэтому у [1] может не быть «email» или «first_name»

Спасибо, что у вас есть продвинутый.

Update: После некоторого кодирования я пока здесь

$count = count($null_check); 
    for ($i = 0; $data < $count; $i++) { 
     foreach ($null_check['value'][$i] as $key => $data) { 
      $parsed_key = str_replace('_', ' ', $key); 
      echo $parsed_key.': '.$data.'<br>'; 
     } 
     echo '<br><br>'; 
    } 

Это позволяет мне просто повторить все детали, но я понятия не имею, какие данные есть, которые и как его организовать.

Выход:

PartitionKey: AWT-GPI.com 
RowKey: 0024a6ac-6cf1-454a-91b2-15bfec3a3d86 
Timestamp: 2016-09-09T20:16:26.8674483Z 
Email: [email protected] 
First Name: Jennifer 
Hash: d656d0c21b8f3c14fe03232bb68d1b53 
IP 1: 
Last Name: Young 
Username: flacobell 


PartitionKey: AWT-GPI.com 
RowKey: 002c00c4-e064-43e8-9dd8-319c8d6663bd 
Timestamp: 2016-09-09T20:19:54.5500874Z 
Email: [email protected] 
First Name: G 
Hash: 1444a7b2c86506158013d1175137eede 
IP 1: 
Last Name: Wilson 
Username: misterspeed76 
+0

«Я взял некоторые вещи и перестроил их». Итак, вы хотите, чтобы результат был _exactly_, что вы дали выше, или вы хотите, чтобы он включал те «вещи», которые вы удалили? –

+0

Итак, я использовал [0] для примера, и я хочу именно это. Чтобы повторить его, возьмите ParititonKey, RowKey и Timestamp, а не измените их. –

+0

Что случилось с первым циклом foreach? – Parfait

ответ

0

Смотрите, если это помогает:

foreach($jsonArray as $jsonObj) 
{ 
    foreach($jsonObj as $key => $value) 
    { 
     if ($key === "PartitionKey" || 
      $key === "Email" || 
      $key === "First_Name" || 
      $key === "Last_Name" || 
      $key === "Hash") { 
      echo $key . ": " . $value . "<br>"; 
     } 

    } 
} 

Если у вас есть json_decode ($ JSON) в JSON массив объектов.

+0

Я задал еще один вопрос, чтобы установить значения, которые мне не нужны [вопрос] (http://stackoverflow.com/questions/39542505/php-json-array-unset-not- работает/39542656 # 39542656). Теперь мне нужно только знать, как их переставить. Это также не сработает, потому что не все записи имеют hash или first_name, поэтому ... –

+0

Цикл Я даю вам чеки, если есть хеш. Если в выводе API нет хеша, вы не сможете его получить! Вы пытаетесь отформатировать результат после его получения или пытаетесь изменить API? –

0
foreach ($null_check['value'] as $key => $data) { 
     if(isset($data['PartitionKey'])){ 
      $parsed_website = str_replace('_', ' ', $data['PartitionKey']); 
      echo 'Website: '.$parsed_website.'<br>'; 
     } 
     if(isset($data['Username'])){ 
      echo 'Username: '.$data['Username'].'<br>'; 
     } 
     if(isset($data['Email'])){ 
      echo 'Email: '.$data['Email'].'<br>'; 
     } 
     if(isset($data['Hash'])){ 
      echo 'Hash: '.$data['Hash'].'<br>'; 
     } 
     if(isset($data['Salt'])){ 
      echo 'Salt: '.$data['Salt'].'<br>'; 
     } 
     if(isset($data['First_name'])){ 
      echo 'First Name: '.$data['First_Name'].'<br>'; 
     } 
     if(isset($data['Last_Name'])){ 
      echo 'Last Name: '.$data['Last_Name'].'<br>'; 
     } 
     if(isset($data['IP_1'])){ 
      $null_ip = array('0000-00-00', null); 
      if(!in_array($data['IP_1'], $null_ip)) { 
       echo 'Registered IP: '.$data['IP_1'].'<br>'; 
      } 
     } 
     echo '<br><br>'; 
    } 

Я просто сделал isset для chcek, если был ключ. Это будет проходить через весь массив. Спасибо за помощь, но это сработало для меня.