问题
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) "ginyoung30@gmail.com"
["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) "Glenn@flavorleague.com"
["First_Name"]=> string(1) "G"
["Hash"]=> string(32) "1444a7b2c86506158013d1175137eede"
["IP_1"]=> string(0) "" ["Last_Name"]=> string(6) "Wilson"
["Username"]=> string(13) "misterspeed76"
}
}
}
That is the array using this code
$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>';
}
I am able to get this output
PartitionKey: AWT-GPI.com
RowKey: 0024a6ac-6cf1-454a-91b2-15bfec3a3d86
Timestamp: 2016-09-09T20:16:26.8674483Z
Email: ginyoung30@gmail.com
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: Glenn@flavorleague.com
First Name: G
Hash: 1444a7b2c86506158013d1175137eede
IP 1:
Last Name: Wilson
Username: misterspeed76
Now I want to unset RowKey
and Timestamp
, however when I do in the foreach
statement
unset($null_check['RowKey'];
It doesn't work, I create a separate for each outside or inside, doesn't work, I use the value assigned in the foreach
doesn't work. Literally nothing works. This is only a part I have about 30 more just like this. All same format, I just want to remove the RowKey
and Timestamp
Key, how would I do this?
回答1:
Use this code
$count = count($null_check);
for ($i = 0; $i <= $count; $i++) {
foreach ($null_check['value'][$i] as $key => $data) {
$parsed_key = str_replace('_', ' ', $key);
echo $parsed_key.': '.$data.'<br>';
if(in_array($key,array('RowKey','Timestamp'))){
unset($null_check['value'][$i][$key]);
}
}
echo '<br><br>';
}
echo '<pre>';
print_r($null_check);
echo '</pre>';
回答2:
You can use unset()
or array_diff_key()
, here's how: (just change the \n
's to <br>
's)
(Demo)
Input:
$array=[
"value"=>[
["PartitionKey"=>"AWT-GPI.com",
"RowKey"=>"0024a6ac-6cf1-454a-91b2-15bfec3a3d86",
"Timestamp"=>"2016-09-09T20:16:26.8674483Z",
"Email"=>"ginyoung30@gmail.com",
"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"=>"Glenn@flavorleague.com",
"First_Name"=>"G",
"Hash"=>"1444a7b2c86506158013d1175137eede",
"IP_1"=>"",
"Last_Name"=>"Wilson",
"Username"=>"misterspeed76"
]
]
];
Method #1:
foreach($array['value'] as $subarray){
foreach(array_diff_key($subarray,['RowKey'=>'','Timestamp'=>'']) as $k=>$v){ // does not modify $array
echo str_replace('_',' ',$k)," : $v\n";
}
echo "\n";
}
Method #2:
echo "\n---\n";
foreach($array['value'] as $subarray){
unset($subarray['RowKey'],$subarray['Timestamp']); // does not modify $array
foreach($subarray as $k=>$v){
echo str_replace('_',' ',$k)," : $v\n";
}
echo "\n";
}
Output:
PartitionKey : AWT-GPI.com
Email : ginyoung30@gmail.com
First Name : Jennifer
Hash : d656d0c21b8f3c14fe03232bb68d1b53
IP 1 :
Last Name : Young
Username : flacobell
PartitionKey : AWT-GPI.com
Email : Glenn@flavorleague.com
First Name : G
Hash : 1444a7b2c86506158013d1175137eede
IP 1 :
Last Name : Wilson
Username : misterspeed76
---
PartitionKey : AWT-GPI.com
Email : ginyoung30@gmail.com
First Name : Jennifer
Hash : d656d0c21b8f3c14fe03232bb68d1b53
IP 1 :
Last Name : Young
Username : flacobell
PartitionKey : AWT-GPI.com
Email : Glenn@flavorleague.com
First Name : G
Hash : 1444a7b2c86506158013d1175137eede
IP 1 :
Last Name : Wilson
Username : misterspeed76
来源:https://stackoverflow.com/questions/39542505/php-json-array-unset-not-working