2016-09-17 21 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" 
    } 
    } 
} 

正在使用此代码PHP的JSON数组未设置不工作

$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 

现在我想取消设置RowKeyTimestamp阵列,但是当我在foreach声明

unset($null_check['RowKey']; 

它不起作用,我为每个外部或内部创建一个单独的,不起作用,我使用foreach中指定的值不起作用。毫不起作用这只是我有这个约30更多的一部分。所有相同的格式,我只是想删除RowKeyTimestamp键,我会怎么做?

+0

'未设置($ null_check [ 'RowKey'];'有')'在缺少最后,如果这是一个错字,那么'unset($ null_check ['value'] [$ i] ['RowKey']);'只能作为它的内部数组。或者使用'unset($ data ['RowKey']);'取消设置 – Sasikumar

+0

你打开了错误报告吗?在文件顶部添加[错误报告](http://php.net/manual/en/function.error-reporting.php):'ini_set(“display_errors”,1); error_reporting(E_ALL);'你可能会遇到一些错误。但首先我不确定你是否知道你在做什么和foreach循环。首先你要计算你的数组,它将返回1,因为在第一维中,你只有值'value => Array(...)'。 – Rizier123

+0

这意味着您的for循环只执行1次迭代,并且在您的foreach循环中,您只需循环遍历第一个子数组,基本上是'foreach($ null_check [“value”] [0] as $ key => $ value)''。因此,在那个foreach循环中,你可能会尝试去掉元素,这是行不通的,因为你正在处理一个元素的副本。所以你要么使用原始数组的完整键,要么通过引用循环元素。 – Rizier123

回答

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>'; 
+0

代码:'$ count = count($ null_check); \t \t为($ I = 0; $数据<$计数; $ I ++){ \t \t \t的foreach($ null_check [ '值'] [$ i]于作为$键=> $数据){ \t \t \t \t $ parsed_key = str_replace('_','',$ key); \t \t \t \t echo $ parsed_key。':'。$ data。'
'; \t \t \t \t如果(in_array($键,阵列( 'RowKey', '时间戳'))){ \t \t \t \t \t未设置($ null_check [ '值'] [$ i]于[$键]); \t \t \t \t} \t \t \t} \t \t \t回声

'; \t \t}'输出是一样的 –

+0

输出是一样的,但是现在你的数组不包含'RowKey'和'Timestamp'。检查'foreach',因为我没有设置密钥 –

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"=>"[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" 
     ] 
    ] 
]; 

方法#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 : [email protected] 
First Name : Jennifer 
Hash : d656d0c21b8f3c14fe03232bb68d1b53 
IP 1 : 
Last Name : Young 
Username : flacobell 

PartitionKey : AWT-GPI.com 
Email : [email protected] 
First Name : G 
Hash : 1444a7b2c86506158013d1175137eede 
IP 1 : 
Last Name : Wilson 
Username : misterspeed76 


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

PartitionKey : AWT-GPI.com 
Email : [email protected] 
First Name : G 
Hash : 1444a7b2c86506158013d1175137eede 
IP 1 : 
Last Name : Wilson 
Username : misterspeed76