获得第n阵列行数PHP
问题描述:
假设你有分配给一个变量以下阵列值,获得第n阵列行数PHP
$erz = Array (
[0] => stdClass Object ([id] => 43 [gt] => 112.5)
[1] => stdClass Object ([id] => 47 [gt] => 46)
[2] => stdClass Object ([id] => 48 [gt] => 23.75)
[3] => stdClass Object ([id] => 49 [gt] => 12.5)
)
我需要能够获得给出的ID数组索引号。所以,例如我想得到2给定ID 48,或得到3 ID 49,等等。有没有一个PHP命令能够做到这一点?
答
我不认为有,但很容易建立自己的功能..
function findArrayIndex($arr, $searchId) {
$arrLen = count($arr);
for($i=0; $i < $arrLen; $i++) {
if($arr[$i][id] == $searchId) return $i;
}
return -1;
}
答
没有,有没有这样的funcion。实际上有一个array_search()
,但不能将它与对象一起使用。例如,这里已经被问了一个问题simmilar:PHP - find entry by object property from a array of objects
所以,你必须使自己的循环:
$result = null;
$givenID = 43;
foreach ($erz as $key => $element)
{
if ($element->id == $givenID)
$result = $key;
}
如果它是一个'id'为什么不把该标识符在数组/哈希索引第一名? – VolkerK 2013-03-06 11:39:55
您可以尝试使用PhpLinq来做到这一点,它与.Net版本非常相似。查看以下链接了解更多信息。 http://tech.pro/tutorial/797/basic-linq-syntax-in-php-with-phplinq它可能不是你正在寻找的索引,但它会返回整个项目。 – 2013-03-06 11:36:08