我有一個數組名arrayname
並在下面的圖像中有一些值。使用php檢索數組中的最後一個值
我怎樣才能在陣列arrayname
即使在arrayname1[7]
爲空值的最後一個值。這應該忽略空值並給出最終答案。
我有一個數組名arrayname
並在下面的圖像中有一些值。使用php檢索數組中的最後一個值
我怎樣才能在陣列arrayname
即使在arrayname1[7]
爲空值的最後一個值。這應該忽略空值並給出最終答案。
篩選出空值,取最後一個值:
$array = array_filter($arrayname1);
$lastValue = end($array);
有沒有辦法找到你需要的空值,但還有另一種方法來創建另一個數組並找到最終值。
下面是一個示例實施例
<?php
$fruits = array('apple', 'banana', 'cranberry','', 'fadsf', '', '');
echo "Count : " . count($fruits);
$k = count($fruits) - 1;
foreach($fruits as $pos => $v1) {
if($v1 != "") {
echo "$v1 <br>";
$newarray1[] = $v1;
}
}
echo "<br>Last : " . end($newarray1);
?>
爲什麼重新創建'array_filter'? – deceze 2011-12-27 06:45:05
「isset()函數」,以查看是否有元件是 「空」。
使用「count()」來確定數組的長度。
基準:
我重做我自己的服務器上的標杆,因爲鍵盤是由它給零星結果是零星的服務器負載,它使用的是舊版本的PHP。
結果:
(Target: 100003)
Last Value: 100003
array_filter took 8.4615960121155 seconds
Last Value: 100003
array_flip took 20.312706947327 seconds
Last Value: 100003
array_pop took 6.7329788208008 seconds
基準腳本是:
$array=array();
for($run=0; $run<100000; $run++)
{
$rand=rand(0,4);
if ($rand===0) $array[]=''; else $array[]=(string)$rand+$run;
}
$save=$array;
echo '(Target: '.end($array).")\n";
$time=microtime(true);
for($run=0; $run<1000; $run++)
{
$array=$save;
$array = array_filter($array);
$lastValue = end($array);
}
$time=microtime(true)-$time;
echo "Last Value: $lastValue\n";
echo "array_filter took $time seconds\n";
unset($array_2);
$time=microtime(true);
for($run=0; $run<1000; $run++)
{
$array=$save;
$array = array_flip($array);
unset($array['']);
$lastValue = array_pop(array_flip($array));
}
$time=microtime(true)-$time;
echo "Last Value: $lastValue\n";
echo "array_flip took $time seconds\n";
unset($array_2);
$time=microtime(true);
for($run=0; $run<1000; $run++)
{
$array=$save;
$lastValue = array_pop($array);
while($lastValue==='')
{
$lastValue = array_pop($array);
}
}
$time=microtime(true)-$time;
echo "Last Value: $lastValue\n";
echo "array_pop took $time seconds\n";
獲獎者是:
function array_last_noempty($array)
{
$lastValue = array_pop($array);
while($lastValue==='')
{
$lastValue = array_pop($array);
}
return $lastValue;
}
您可以用功能這種操作還有:
<?php
function getLastElement($data=array())
{
for($i=0; $i<count($data); $i++)
{
if($i==count($data)-1)
{
$end = $data[$i];
}
}
return $end;
}
?>
這是最好的和短代碼。 – Rafee 2011-12-27 06:47:15