【问题标题】:array_search function for JSON File in PHPPHP中JSON文件的array_search函数
【发布时间】:2021-12-29 07:11:19
【问题描述】:

文件:

[
{
    "Zustand":"geschlossen",
    "Losnummer":1,
    "Gewinnklasse":"A",
    "Preis":10
},

{
    "Zustand":"geschlossen",
    "Losnummer":2,
    "Gewinnklasse":"B",
    "Preis":20
},

{
    "Zustand":"geschlossen",
    "Losnummer":3,
    "Gewinnklasse":"B",
    "Preis":30
} 
]

我想要一个数组,所以我这样做:

<?php

$str = file_get_contents("lose.json");
$json = json_decode($str, true);

 ?>

然后我想输入一个值,这个值应该识别数组中的条目并删除整个条目:

<?php
    if (($key = array_search(10, $json)) !== false) {
       unset($json[$key]);
        echo"test";
    }
?>

我输入了值:10,所以应该删除数组的第一个条目。

我认为 array_search 无法读取我的 $json 但我不知道为什么。 smb 可以解决这个问题吗?

【问题讨论】:

  • "我认为 array_search 无法读取我的 $json" - 不是这样,您只是在搜索数组不包含的内容。 array_search 与顶层的元素进行比较,这里的元素本身就是数组。尝试将数组与 10 进行比较当然不会得到 true。

标签: php arrays json


【解决方案1】:

您还需要指定要搜索的键(“Preis”)。 array_column() 会帮助我们:

$array = json_decode($json, true);

$key = 'Preis';
$value = 10;
$index = array_search( $value, array_column($array, $key) );
if( is_numeric($index) ){
    unset($array[$index]);
}

print_r($array);

【讨论】:

  • 嗨,伙计,是的,这正是我要找的。有用! :)
猜你喜欢
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-02
相关资源
最近更新 更多