我想在foreach循环中获取数组键的序号。
<?php
$array = array("id" => 2, "username" => "foobar");
foreach($array as $value){
$array_key = search_array($value, $array);
//find the ordinal number of $array_key from $array here.
echo $value;
}
count返回数组中数组键的全部数量,我需要获取数组键的序号。 我希望你们明白我的要求。
答案 0 :(得分:2)
让另一个变量在每次迭代后增加值。
答案 1 :(得分:2)
据我所知,如果一个条目有一个字符串键,它在数组中没有序号位置。来自http://php.net/manual/en/language.types.array.php:
PHP中的数组实际上是一个有序的映射。映射是将值与键关联的类型。此类型针对多种不同用途进行了优化;它可以被视为数组,列表(向量),哈希表(地图的实现),字典,集合,堆栈,队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。
有序地图不会在现有的字符串键上分配序号键。
你能做什么,获得一个伪序键是增加一个变量。
$i=0;
foreach( $array as $key => $value ) {
echo $i.':'.$key.':'.$value;
$i++;
}
将回显数组中的每个序号键,键和值。
答案 2 :(得分:0)
您可以使用current功能,如下所示:
foreach($array as $value){
$array_key = search_array($value, $array);
echo current( $array );
echo $value;
}
或者您可以像这样在循环中添加一个计数器:
$count = 0;
foreach($array as $value){
$array_key = search_array($value, $array);
echo $count++;
echo $value;
}
答案 3 :(得分:0)
<?php
$arry = array("id" => 2; "username" => "foobar");
$idx = 0;
foreach($array as $value){
if(array_search(arry, $value)) echo "element found: ".$idx;
$idx++;
}
?>
你需要的是另一个变量 - 上面例子中的$ idx来计算迭代次数,因为你不能使用与它们命名相对应的“key”。
此外,搜索功能确实称为array_search。