假设我给你以下数组:
$array = array (
array (
'key' => 'value'
),
array (
'key' => 'another value'
),
array (
'key' => 'yet another value'
),
array (
'key' => 'final value'
)
);
我想从这个数组得到的是数组的位置和提供的值。因此,如果我在$array
搜索"yet another value"
的值,则结果应为: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.
}
}
}
密钥始终相同
答案 0 :(得分:4)
如果密钥相同,您可以这样做:
$v = "yet another value";
$a = array_search(array("key"=>$v),$array);
echo $a;//2
http://sandbox.onlinephpfunctions.com/code/1c37819f25369725effa5acef012f9ce323f5425
答案 1 :(得分:1)
foreach ($array as $pos => $a) {
foreach ($a as $k => $v) {
if ($v === "yet another value") {
return $pos;
}
}
}
这应该是你要找的。 p>
答案 2 :(得分:0)
由于你想要数组的位置,所以使用如下的计数: -
var count = 0;
foreach ($array as $a) {
foreach ($a as $k => $v) {
if ($v === "yet another value") {
return count;
}
count++;
}
}
答案 3 :(得分:0)
正如你所说的那个键总是一样的,所以你可以像这样在外循环声明一个变量。
$position = 0;
foreach ($array as $a) {
foreach ($a as $k => $v) {
if ($v === "yet another value") {
return $position;
}
}
$position++;
}