首页 > 解决方案 > 如何分别获取键和值

问题描述

(请不要说这是重复的,我先在这里检查)我有一个这样的json文件

[{"studentName":"ali","studentPhone":"123"}, 

{"studentName":"veli","studentPhone":"134"}

需要分别获取键和值我正在尝试这样的事情

foreach ($jsonArray as $array ) {
    if(is_array($array)){

        while($bar = each($array)){
            echo $bar[1];
        }

但给了我这个输出:

ali123veli134hatca134dursun13444

我也试过这种方式:

if(is_array($array)){
    foreach ($array as $key => $value) {
        echo $value;
    }

标签: phparraysjson

解决方案


像这样尝试使用json_decode()或使用array_column()来获取studentName

使用普通的 foreach:

<?php
$json = '[{"studentName":"ali","studentPhone":"123"}, {"studentName":"veli","studentPhone":"134"}]';
$array = json_decode($json,1); // the second params=1 makes json -> array
foreach($array as $key=>$value){
    echo $value['studentName']."<br/>";
    #echo $value['studentPhone']."<br/>";    
}
?>

使用 array_column():

<?php
$json = '[{"studentName":"ali","studentPhone":"123"}, {"studentName":"veli","studentPhone":"134"}]';
$array = json_decode($json,1);
$names = array_column($array,'studentName');
print '<pre>';
print_r($names); // to get only studentName
print '</pre>';
?>

推荐阅读