Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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数组和current()_Php_Arrays - Fatal编程技术网

PHP数组和current()

PHP数组和current(),php,arrays,Php,Arrays,我有一个数组的格式 Array ( [/Callum/] => Array ( [0] => ##chan1 ) [/Adam/] => Array ( [0] => ##chan2 ) [/Chris)/] => Array ( [0] => ##chan1 )

我有一个数组的格式

Array
(
    [/Callum/] => Array
        (
            [0] => ##chan1
        )
    [/Adam/] => Array
        (
            [0] => ##chan2
        )   
    [/Chris)/] => Array
        (
            [0] => ##chan1
        )
    [/Mike*/] => Array
        (
            [0] => ##chan3
        )
)
由此,我使用下面的代码尝试获取每个通道所包含的阵列的id

foreach($array as $row)
{

    if (in_array($buf['channel'],$row))
    {
        $return = $return." ".current(array_keys($array,$row));
    }
}
我的问题是current()似乎没有按我所期望的方式工作。当前如果$buf/Callum/是两次而不是/Callum/和/Chris/

为什么不:

foreach($array as $key => $row)
{

    if (in_array($buf['channel'],$row))
    {
        $return = $return . " " . $key;
    }
}
试试这个

foreach($array is $id => $row){
    $return .=" ".$id;
}
编辑:


这是要取代整个foreach还是只是内部if?整个东西。但是删除$return并再次添加if语句,我想我理解错了。我将编辑我的ans。array_键每次都将返回一个新数组,它的内部指针将始终设置为第一个元素。啊,明确地解释了为什么这不起作用
foreach($array is $id => $row){
    if($row[0] == $buf['channel']){
        echo $key; //This is your key
    }

}