如何更改json数组中的值

时间:2015-06-07 13:37:26

标签: php arrays json mysqli

我有一个来自mysqli查询的JSON数组,我需要在将其传递给Datatables之前更改其中的一些值。

“已发布”:0应打印“否”,如果值为1则显示“是”。 “性”:1是女性,“性”:0是男性。

如何在此数组中执行这些字符串替换?

[{
    "id": "3",
    "river": "Dirdalselva",
    "pool": "Sone 1",
    "fish": "Sjøørret",
    "date": "2009-06-18",
    "weight": "1300",
    "length": "65",
    "fly": "Dryfly",
    "released": "0",
    "picture": "http:\/\/localhost\/php\/files\/35409ec6762544c55500b32a7ff37ee9.jpeg",
    "sex": "1",
    "user": "Filip"
}

以下是我获取数组的方法:

$myArray = array();
if ($result = $mysqli->query("SELECT * FROM fish")) {

    while($row = $result->fetch_array(MYSQL_ASSOC)) {
        $myArray[] = $row;
    }
    echo json_encode($myArray);
}

2 个答案:

答案 0 :(得分:0)

您可以在内部使用switch语句来实现此目的,请参阅以下内容: -

$myArray = array();
if ($result = $mysqli->query("SELECT * FROM fish")) {

    while($rows = $result->fetch_array(MYSQL_ASSOC)) {
        if(is_array($rows)){
            foreach($rows as $row => $value)
            switch(strtolower(trim($row))){
                case 'released':
                    $myArray[] = ($value == 1) ? 'Yes' : 'No';
                    break;
                case 'sex':
                    $myArray[] = ($value == 1) ? 'female' : 'male';
                    break;
                default: 
                    $myArray[] = $value;
                    break;

            }
        }

    }
    echo json_encode($myArray);
}

答案 1 :(得分:0)

你实际上有一个来自mysqli查询的PHP数组。因此,在将它们分配给$ myArray之前,您应该只需更改$ row的值。

json_encode()