Chinaunix

标题: 关于数组的key和value [打印本页]

作者: imbiss    时间: 2007-05-16 07:41
标题: 关于数组的key和value
PHP的数组定义中$arr[key] = value; , key 可以使字符串或者是整数。
这样带来的问题如下
在一个循环中改变数组的值。


  1. <?php
  2. //错误的方法
  3. $a = array();
  4. $a["name"] ="james";
  5. $a["fname"] = "bond";

  6. for($i=0; $i<sizeof($a); $i++ ){
  7.         $a[$i] = "stephan"; //wrong! it will increase the array array!       
  8.         if($i>10){                                 
  9.                 print_r($a);
  10.                 //die("Error!");
  11.                 //exit();
  12.                 break;
  13.         }
  14. }


  15. print($a[0]);

  16. ?>


  17. 请告诉我,为什么我这样做是错的?
  18. 我的本意是把数组里面的所有元素(james, bond)都替换为"stefan"。
  19. 但是实际结果是,不停的在数组追加新的元素,导致数组不断变大。
  20. 最终出错。

  21. 后来我找到了正确的方法如下
  22. 难道我用变量,作为下标去访问数组中的某个元素是不可以的吗?


  23. <?php
  24. //正确的方法
  25. $a = array();
  26. $a["name"] ="james";
  27. $a["fname"] = "bond";
  28. foreach( $a as $key => $value){
  29.         $a[$key] = "steffan";
  30. }
  31. print_r($a);
  32. ?>


复制代码


难道就只能用foreach了吗?
参考 http://www.phpx.com/man/zh/language.types.array.html
作者: seasee    时间: 2007-05-16 08:51
$a[$i]



$a[$key]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2