Php Json阵列未设置不起作用

时间:2016-09-17 03:12:06

标签: php arrays json array-unset

  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" 
    } 
  } 
}

这是使用此代码的数组

$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: 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

现在我想取消设置RowKeyTimestamp,但是当我执行foreach声明时

unset($null_check['RowKey'];

它不起作用,我为每个外部或内部创建一个单独的,不起作用,我使用foreach中指定的值不起作用。字面上没有任何作用。这只是我有大约30个这样的部分。所有格式相同,我只想删除RowKeyTimestamp密钥,我该怎么做?

2 个答案:

答案 0 :(得分:0)

使用此代码

$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>';

答案 1 :(得分:0)

您可以使用unset()array_diff_key(),具体方法如下:(只需将\n更改为<br>

Demo

输入:

$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"
        ]
    ]
];

方法#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";
}

方法#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";
}

输出:

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