Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-按给定值进行多维数组过滤_Php_Arrays - Fatal编程技术网

PHP-按给定值进行多维数组过滤

PHP-按给定值进行多维数组过滤,php,arrays,Php,Arrays,这是我当前的数组。我只想按电话号码筛选应答状态。 Output将如下所示: Array ( [01755677011] => Array ( [0] => Array ( [0] => 1 [id] => 1 [1] => 01755677011 [phone_num] => 01755677011

这是我当前的数组。我只想按电话号码筛选应答状态。
Output将如下所示:

Array ( 
    [01755677011] => Array ( 

        [0] => Array ( 

            [0] => 1 
            [id] => 1 
            [1] => 01755677011 
            [phone_num] => 01755677011 
            [2] => NoAnswer 
            [status] => Answer 
        ) 
        [1] => Array ( 

            [0] => 2 
            [id] => 2 
            [1] => 01755677011 
            [phone_num] => 01755677011 
            [2] => NoAnswer 
            [status] => NoAnswer 
        ) 
        [2] => Array ( 

            [0] => 3 
            [id] => 3 
            [1] => 01755677011 
            [phone_num] => 01755677011 
            [2] => Answer 
            [status] => NoAnswer 
        ) 
        [3] => Array ( 

            [0] => 4 
            [id] => 4 
            [1] => 01755677011 
            [phone_num] => 01755677011 
            [2] => Answer 
            [status] => Answer 
        )
    )
    [01755677012] => Array (

        [0] => Array ( 

            [0] => 16 
            [id] => 16 
            [1] => 01755677012 
            [phone_num] => 01755677012 
            [2] =>No Answer 
            [status] => NoAnswer 
        ) 
        [1] => Array ( 

            [0] => 18 
            [id] => 18 
            [1] => 01755677012 
            [phone_num] => 01755677012 
            [2] => Answer 
            [status] => Answer
        ) 
    ) 
)

有人能帮我吗?

我不明白01755677011怎么能得到0,23。如果您正在显示phone_num及其“应答”状态的次数,您可以通过以下方式执行此操作:

Phone Num   No of answer  
01755677011 0,23  
01755677012 1  
$result=array();
foreach($numas$key=>$row){
$result[$key]=array();
$count=0;
foreach($key\u value=>$row\u value的行){
如果($row_值['status']=='Answer'){
//$key是键01755677011和01755677012
$result[$key]['id'][$count]=$row_值['id'];
$count++;
}
}
}
如果(!空($result)){
回显“电话号码|应答号
”; foreach($key=>$row的结果){ echo$key.“.count($row['id'])。”
; } }
第二版:

1) 基于[status]或[2]中的“Answer”

2) 显示对应电话号码的数组索引

$result = array();
foreach ($num as $key => $row) {
    $result[$key] = array();
    $count = 0;
    foreach($row as $key_value => $row_value) {
        if ($row_value['status'] == 'Answer') {
            // $key is the key 01755677011 and 01755677012
            $result[$key]['id'][$count] = $row_value['id'];
            $count++;
        }
    }
}

if (!empty($result)) {
    echo "Phone Num | No of answer<br />";
    foreach ($result as $key => $row) {
        echo $key . " " . count($row['id']) . "<br />";        
    }
}
$result=array();
foreach($numas$key=>$row){
$result[$key]=array();
$count=0;
foreach($key\u value=>$row\u value的行){
如果($row_值['2']='Answer'.$row_值['status']=='Answer'){
//$key是键01755677011和01755677012
$result[$key][$count]['index']=$key\u值;
$count++;
}
}
}
打印(结果);
如果(!空($result)){
回显“电话号码|应答号
”; foreach($key=>$row的结果){ echo$key.“|”; 如果(!空($row)){ foreach($data\u key=>$data行){ echo$数据[‘索引’]; } }否则{ 回声“无记录”; } 回声“
”; } }
您如何在所需输出中不获取任何答案列值?我在您的输入数组$qry\u num\u fetch=“SELECT*FROM phnno\u tbl”中看不到任何类型的值;$exc\u qry=mysqli\u查询($conn,$qry\u num\u fetch);而($row=mysqli_fetch_数组($exc_qry)){$num[]=$row;}$result=array();foreach($num作为$element){$result[$element['phone_num']][]=$element;$res[$element['phone_num']]]=$element;}foreach($res作为$key=>$values){$number[]=$key;}//print\r($result[$number][0]['status']);打印(结果);实际上是我的查询结果数据。我想通过应答过滤这个数组,最后通过电话号码输出应答组的键。我仍然不明白如何获得“应答号”值,这是“状态”=应答/NoAnswer的函数吗?实际上我想要关于电话号码的应答时间号。如果我们看到数组,我们可以看到01755677011-总回答时间为3。先是0无钥匙,然后是2无钥匙,最后是3无钥匙。这意味着这个(01755677011)num已经回答了第一次、第三次和第四次。所以最后我想得到结果,它被回答了多少次,以及在没有回答之后什么时候被回答。我只是想知道关于电话号码的答案。我还是不明白。01755677011有4次尝试。我不知道3是从哪里来的。除非您正在查看数组索引,如[01755677011][0]、[01755677011][2]、[01755677011][3]?并且当您说“已回答”时,它是指[status]还是也指“[2]=>Answer”?如果您的观点正确,我已经更新了建议的答案-您正在[status]和[2]中寻找“Answer”,并且希望显示数组索引。
$result = array();
foreach ($num as $key => $row) {
    $result[$key] = array();
    $count = 0;
    foreach($row as $key_value => $row_value) {
        if ($row_value['2'] == 'Answer' || $row_value['status'] == 'Answer') {
            // $key is the key 01755677011 and 01755677012
            $result[$key][$count]['index'] = $key_value;
            $count++;
        }
    }
}

print_r($result);

if (!empty($result)) {
    echo "Phone Num | No of answer<br />";
    foreach ($result as $key => $row) {
        echo $key . " | ";
        if (!empty($row)) {
            foreach ($row as $data_key => $data) {
                echo $data['index'];
            }
        } else {
            echo "No record";
        }
        echo "<br />"; 
    }
}