2012-11-15 42 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 
) 
相關問題