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
}
}