在PHP中访问JSON数组并发送到MySQL SELECT

在PHP中访问JSON数组并发送到MySQL SELECT,php,jquery,mysql,ajax,json,Php,Jquery,Mysql,Ajax,Json,我试图用PHP从JSON接收数据,并在SELECT查询中使用它。我到处寻找,但每一个解决方案都不适合我 我返回的JSON数据: "{processos:[{"processo":"203"},{"processo":"1430"}]}" 我的PHP: $ar2 = json_decode($processo2, true); $where2 = array(); foreach($ar2['processo'] as $key=>$val){ $wh

我试图用PHP从JSON接收数据,并在SELECT查询中使用它。我到处寻找,但每一个解决方案都不适合我

我返回的JSON数据:

"{processos:[{"processo":"203"},{"processo":"1430"}]}"
我的PHP:

$ar2 = json_decode($processo2, true);

    $where2 = array();

    foreach($ar2['processo'] as $key=>$val){ 
        $where2[] = $val;
    }
    $where2 = implode(',', $where2);


$pegaSonda = $pdo->prepare("SELECT * FROM sonda WHERE n_processo IN ($where2)");
$pegaSonda->execute();
我的代码怎么了

编辑

@wadersgroup中的代码工作正常,但当我更改为变量时,它停止了。这就是我的编码方式:

$jsonData = array();
$jsonData[] = array("processo" => $automovel->n_processo);
$data['processo2'] .= '{"processos":'.json_encode($jsonData).'}';
$data['processo2']正在发送到my AJAX以填充输入,然后使用以下内容接收数据:

$processo2 = strip_tags(stripslashes($_POST['n_processo2']));

您的JSON字符串看起来无效,请改为尝试:


{“processos”:[{“processo”:“203”},{“processo”:“1430”}]}

此代码中有许多错误。试试这个

    $ar2 = json_decode('{"processos":[{"processo":"203"},{"processo":"1430"}]}', true);

    $where2 = array();

    foreach($ar2['processos'] as $key=>$val){ 
        $where2[] = $val['processo'];
    }
    $where = implode(',', $where2);
    print_r($where);

这到底是怎么不适合你的?返回了错误的数据?没有返回数据?抛出错误?发出侮辱?狗踢了?@MarcB,在$where2中,我没有收到正确的数据,它被禁止调用第二个数据库表
$ar2=json\u decode($processo2,true)
可能是输入了
$ar2=json\u decode($processos,true)
@vinayakj,$processo2是将数据发送到PHP的输入字段。然后您的根目录变成
ar2
而不是
$processos
,所以请尝试
$ar2.processos['processo']
我已经尝试过了,现在它返回
“{”processos:[{”processo:“203”},{”processo:“1430”}
但仍然不起作用。因此,现在请尝试
$ar2.processos['processo']作为$key=>$val
您的代码工作得很好,但我的变量不起作用,可能是我的编码方式?在编码完字符串下的任何字符后,JSON模式应使用JSON_编码代码更新我的问题,您能检查一下是否有问题吗?试试$jsonData=array()$jsonData[]=array(“processo”=>json_encode($automovel->n_processo))$数据['processo2'].='{“processos”:'$jsonData'.}';它返回
“{”processos:Array}”
$processo2 = '{"processos": [{ "processo": "203"},{ "processo": "1430"}]}'
$ar2 = json_decode($processo2, true);    
$arr = array_map(function($i) {return $i['processo']; }, $ar2["processos"]);
$where = implode(", ", $arr);