在json数组中搜索参数并显示正确的信息

时间:2016-09-19 08:49:04

标签: php arrays json

是否有可能在json数组中搜索我使用curl进行搜索,如果匹配则仅显示该数据?

数组看起来像

Array
(
[status] => success
[data] => Array
    (
        [out] => Array
            (
                [0] => Array
                    (
                        [address] => test address
                        [amount] => 11
                        [type] => 1
                    )

                [1] => Array
                    (
                        [address] => test address 1
                        [is_nonstandard] => 
                        [amount] => 12
                        [type] => 1

                    )

            )
    )

[code] => 200
[message] => 
)

这就是我拉数组的方法

function get_curl_content_tx($url) {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    $result = curl_exec($curl);
    curl_close($curl);
    return $result;
}
$url=get_curl_content_tx("http://example.com"); 
$total =json_decode($url,true);

因此,[out] => Array中的1个数组可能超过当前情况,因此我希望通过[address]进行搜索和匹配,并在匹配时提供数据。

3 个答案:

答案 0 :(得分:1)

这是一种方法:

foreach($arr['data']['out'] as $d){
    if(strpos($d['address'], 'testaddress') !== false){
        //do something
        var_dump($d);
    }
}

你需要用你想做的任何东西来替换var_dump。 我为了这个例子使用了strpos,但你可能想要使用一个更适合你需要的自定义方法

希望这有帮助。

答案 1 :(得分:1)

<?php 
$outArray = $total['data']['out'];
foreach($outArray as $item) {
    // echo $item['address'];
}
?>

答案 2 :(得分:1)

试试这个:

   if(isset($total['data']['out'])){
        foreach($total['data']['out'] as $out){
            if(isset($out['address'])){
                if($out['address'] == "your adress"){
                    //Your Stuff;
                }
            }
        }
    }