2012-11-15 113 views
-1

如前所述,我如何获取最后一个元素索引,例如11个位置在$ a中?php:找到多维数组中的最后一个元素索引

$a[0][0] = 0; 
$a[0][1] = 1; 
$a[0][2] = 2; 
$a[1][0] = 3; 
$a[1][1] = 4; 
$a[1][2] = 5; 
$a[2][3] = 6; 
$a[2][4] = 7; 
$a[2][5] = 8; 
$a[3][0] = 9; 
$a[4][0] = 10; 
$a[4][1] = 11; 
enter code here 

我会想接受X = 1,Y = 4

+1

不是一个有效的PHP数组么? – 2012-11-15 04:02:32

+0

这是一个数组? –

+0

这看起来不像PHP代码 –

回答

0
$a=array(0=>array(),1=>array(),2=>array(),3=>array(),4=>array()); 
$a[0][0] = 0; 
$a[0][1] = 1; 
$a[0][2] = 2; 
$a[1][0] = 3; 
$a[1][1] = 4; 
$a[1][2] = 5; 
$a[2][3] = 6; 
$a[2][4] = 7; 
$a[2][5] = 8; 
$a[3][0] = 9; 
$a[4][0] = 10; 
$a[4][1] = 11; 
end($a); 
$x=key($a); 
echo "x=$x "; 
end($a[$x]); 
echo "y=".key($a[$x]); 

这将输出:

x=4 y=1 

键盘:http://codepad.org/YfBFWznR

+0

thx,这是笏我寻找 :) –

1
<?php 
$a = array(
    array(0,1,2), 
    array(3,4,5,6,7,8), 
    array(9), 
    array(10,11), 
); 
var_dump($a[count($a)-1][count($a[count($a)-1])-1]); 
+0

hmm ..我的意思是得到11的指数,达意味着我会喜欢收到x = 1,y = 4 –

2

如果你想获得的11那么你可以简单的使用end()阵列功能

echo end(end($a)); 
最后一个数组值

演示:http://codepad.org/fSsHJYTI

全码:

<?php 

    $a[0][0] = 0; 
    $a[0][1] = 1; 
    $a[0][2] = 2; 
    $a[1][0] = 3; 
    $a[1][1] = 4; 
    $a[1][2] = 5; 
    $a[2][3] = 6; 
    $a[2][4] = 7; 
    $a[2][5] = 8; 
    $a[3][0] = 9; 
    $a[4][0] = 10; 
    $a[4][1] = 11; 

    echo end(end($a)); 

?> 
+0

我的意思是得到这个多维数组中的11的指数 –

+0

我忘了这个功能很好 –

0

您必须循环阵列上,找到最高的条目,那么将当前循环计数器存储为$highest_i$highest_j

更懒。将数组先转换:

foreach ($array as $i=>$sub) { 
    foreach ($sub as $j=>$value) { 
     $by_value[$value] = array($i, $j); 
    } 
} 

然后那种:

ksort($by_value); 

,这将给你的第一个条目的坐标:

print_r(reset($by_value)); 

如:

Array 
(
    [0] => 4 
    [1] => 1 
) 
相关问题