$myphonebook = array (
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
$arr=array_keys($myphonebook);
echo $arr[0]; // sbabu
echo $myphonebook[$arr[0]]; // 5348
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
$arr=array_keys($myphonebook);
echo $arr[0]; // sbabu
echo $myphonebook[$arr[0]]; // 5348
echo $array[0][0];-----------------------------------------
$myphonebook = array (
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
索引分别为sbabu,keith,carole.
echo $myphonebook[sbabu];//5348
echo array_keys($myphonebook)[0];//sbabu
array("sbabu","5348"),
array("keith","4829"),
array("carole","4533")
);
echo $myphonebook[0][0]; // sbabu
echo $myphonebook[0][1]; // 5348
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<?
$myphonebook = array (
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
//索引分别为sbabu,keith,carole.
echo $myphonebook[sbabu];//5348
echo array_keys($myphonebook)[0];//sbabu
?>
</body>
</html>错误:
Parse error: parse error, unexpected '[', expecting ',' or ';' in E:\templates\65\array.php on line 1515行是:
echo array_keys($myphonebook)[0];//sbabu
=>
$arrr=array_keys($myphonebook);
echo $arrr[0];//sbabu
// populations 是保存世界各洲、各国人口的二维数组(数据是俺瞎编的)
$populations = array(
"asia" => array(
"china" => 1300,
"japan" => 200,
"india" => 1000
),
"europe" => array(
"german" => 30,
"france" => 50,
"russia" => 200
),
"america" => array(
"usa" => 300,
"canada" => 20,
"mexico" => 100
)
);// 下面的代码按顺序列出各洲各国人口
for ( reset($populations); $key = key($populations); next($populations) )
{
echo $key . ":<br>"; //输出洲名
$continent = $populations[$key];
while ( list($country_name, $population) = each($continent) )
{
echo " " . $country_name . ": " . population . "<br>"; //输出国名及人口
}
}?>
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
中:"=>" 左边的 "sbabu", "keith", "carole" 叫 key (关键字),即索引,相当于 C/C++ 之类语言的“数组下标”;
"=>" 右边的 "5348", "4829", "4533" 叫 value (值);
关键字和值一一对应。
value 可以是任何东西,当 value 本身也是数组时,就构成了多维数组。传统编程语言的数组下标只能是整数,而PHP的“下标”可以是整数或字符串。
下标为整数的,叫“列举数组”,下标为字符串的,叫“相关数组”。
学过 C,刚接触 PHP 的人对列举数组应该很适应,但对相关数组可能会有些困惑,你不妨把它当作“对照表”,一个 key 对应一个 value。列举数组可以像RAM一样“随机存取”,即用下标定位存取任意数组元素。相关数组不支持下标寻址,只能“顺序存取”(至少我用的版本如此)。但是它内部有一个“游标”,你可以用 reset, end, next, prev 移动游标,定位到合适的元素再用 key, current, each, 获得游标所指的“当前”元素的信息。
key 返回当前元素的 key
current 返回当前元素的 value
each 返回当前元素的(key,value)数对(本身是一个数组,元素[0]是key,元素[1]是value),并且将游标移动到下一个元素。对于你的例子:要显示 "sbabu" 和 "5348":echo key($myphonebook), ",", current($myphonebook);要显示后面元素的 key 和 value,必须用 next() 往后移动游标。
global $strBack, $strMysqlSaid, $strSqlQuery, $strError;
$stmt = mysql_query($sql, $conn);
$result = null;
$result = array();
$err_num = mysql_errno();
if($err_num != 0 ){
db_disconnect($conn);
$err_num = mysql_errno();
$err_description = "<b> $strError </b> <br>\n".
"<p>$strSqlQuery : <pre>$sql</pre>".
"<p>$strMysqlSaid :<font color=red>".
mysql_error()."</font><br>\n ".
"<a href='javascript:history.go(-1)'>$strBack</a>";
$GLOBALS['DBUTIL_ERROR'] = $err_num.".".mysql_error();
echo $err_description;
}
$max_column = mysql_num_fields($stmt);
while($rs = mysql_fetch_array($stmt)){
if(!is_array($rs)){
continue;
}
for($i=0; $i<$max_column; $i++){
$rsfld = mysql_field_name($stmt, $i);
$rsval = $rs[$rsfld];
$rsfld = strtoupper($rsfld);
$row_data[$rsfld] = $rsval;
}
array_push($result, $row_data);
}
return true;
}
//call
$dbh = db_connect();
$sql = "SELECT username,password,email FROM USERS " ;
db_result($dbh, $sql, $result);
while(list($rowID, $rs) = each($result)){
while(list($col, $value) = each($rs)){
}
}
$myphonebook = array (
"sbabu" => "5348",
"keith" => "4829",
"carole" => "4533"
);
echo $myphonebook["sbabu"]."<br>";
echo $myphonebook["keith"];
//这是一个一维数组,you clear
?>