程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> php-PHP中使用foreach和while each輸出關聯數組,只能顯示其中一個

php-PHP中使用foreach和while each輸出關聯數組,只能顯示其中一個

編輯:編程綜合問答
PHP中使用foreach和while each輸出關聯數組,只能顯示其中一個

<?php
$prices = array( 'Tires'=>100 );

$prices[ 'Oil' ] = 10;

$prices[ 'Spark plugs' ] = 4;

echo $prices['Oil'].'<br />';
foreach ($prices as $key => $value) {
    echo $key.' - '.$value.'<br />';    
}

while($element = each($prices)){
    echo $element[ 'key' ];
    echo ' - ';
    echo $element[ 'value' ];
    echo '<br />';
}

?>

注釋掉兩種輸出方式中的任何一個,另一個都可以正常輸出;
但是把它們放在一起後,卻只能輸出其中一個。
然而, 我把兩種輸出方式的順序調轉後,發現兩個都可以輸出。
請問,何解?

最佳回答:


OK,我想明白了。這和foreach的原理有關。
foreach每執行一次,數組內部的指針後移一步,待輸出完畢後,指針已經指向'\0'元素了。
因此隨後的while(each)不會輸出任何結果,因為它相當於在讀取一個空數組。
解決的方法是reset($prices),使數組的指針指向首元素,然後執行第二種輸出方法。

還是感謝親的回答!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved