Php 返回包含数组的数组位置
假设我给您以下数组:Php 返回包含数组的数组位置,php,arrays,Php,Arrays,假设我给您以下数组: $array = array ( array ( 'key' => 'value' ), array ( 'key' => 'another value' ), array ( 'key' => 'yet another value' ), array ( 'key' => 'final value' ) ); 我想从这个数组中得到的是数
$array = array (
array (
'key' => 'value'
),
array (
'key' => 'another value'
),
array (
'key' => 'yet another value'
),
array (
'key' => 'final value'
)
);
我想从这个数组中得到的是数组的位置以及提供的值。因此,如果我在$array
中搜索“另一个值”
的值,结果应该是:2
,因为匹配的数组位于位置2
我知道要做以下事情:
foreach ($array as $a) {
foreach ($a as $k => $v) {
if ($v === "yet another value") {
return $array[$a]; // This is what I would do, but I want
// the int position of $a in the $array.
// So: $a == 2, give me 2.
}
}
}
更新:
钥匙总是一样的
foreach ($array as $pos => $a) {
foreach ($a as $k => $v) {
if ($v === "yet another value") {
return $pos;
}
}
}
这应该是您要查找的内容。因为您需要数组的位置,所以请使用如下计数:-
var count = 0;
foreach ($array as $a) {
foreach ($a as $k => $v) {
if ($v === "yet another value") {
return count;
}
count++;
}
}
如果键相同,您可以简单地执行此操作:
$v = "yet another value";
$a = array_search(array("key"=>$v),$array);
echo $a;//2
正如您所说,key总是相同的,所以您可以像这样在循环外声明一个变量
$position = 0;
foreach ($array as $a) {
foreach ($a as $k => $v) {
if ($v === "yet another value") {
return $position;
}
}
$position++;
}
钥匙总是一样的吗?@n-dru是的,钥匙总是一样的。你已经决定哪一个答案适合你了吗?:-)