如何获取PHP数组的键与值呢
array_keys($array);//获取数组(字典)的所有键值,返回一个键值数组。
array_values($array)://获取数组的所有value值,饭回一个数组。
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; //注明:value不带双引号时,其值只能是数字。【!!!注意:大括号两边只能是单引号,不能是双引号】
带双引号时,可为任意字符。如:{"id":"1","location":"汉字","oxygen":"3.33","negative":"23.2","humidity":"22","temp":"2.33","pm":"6"}
//print_r("
");
//var_dump(json_decode($json));
//var_dump(json_decode($json, true));
//print_r(json_decode($json));
//print_r(json_decode($json, true));
//print_r("");
$arr1=json_decode($json,true);
print_r($arr1);
print_r(array_keys($arr1));
echo array_keys($arr1)[1];
echo array_values($arr1)[2];
while(list($key, $value) = each($arr1))
{
echo "$key === $value
";
}
?>
////从同名txt文本中读取json字符串,并转换成数组
?php
//header("Content-Type: text/html; charset=gb2312");
header("content-Type: text/html; charset=utf-8");//字符编码设置
$name = basename(__file__,".php");
$file_path = $name.".txt";
if(file_exists($file_path))
{
$str = file_get_contents($file_path);//将整个文件内容读入到一个字符串中
//$str = str_replace("
","
",$str);
$str = str_replace(" ","",$str);
//echo $name;
//echo $file_path;
echo $str;
}
//去掉bom头
function rmBOM($string)
{
if (substr($string, 0,3) == pack('CCC',0xef,0xbb,0xbf))
{
$string = substr($string, 3);
}
return $string;
}
//echo rmBOM($str);
$str=rmBOM($str);
$str2arr = json_decode($str,true);
print_r($str2arr);
?>
<?php
//php 二维数组 知道keyvalue 怎么得到对应的value
function getValueByKey($arr, $key) {
foreach($arr as $k => $v) {
if ($k == $key) {
return $v;
}
}
return '';
}
$arr = array('a' => 1, 'b' => 2);
$result = getValueByKey($arr, 'b');
echo "$result";
?>
获取根据value值获取key
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'
';
}
next($array);
}
?>
本文实例讲述了PHP获取数组的键与值方法。分享给大家供大家参考。具体如下:
使用数组的过程中经常要遍历数组。通常需要遍历数组并获得各个键或值(或者同时获得键和值),所以毫不奇怪,PHP为此提供了一些函数来满足需求。许多函数能完成两项任务,不仅能获取当前指针位置的键或值,还能将指针移向下一个适当的`位置。
获取当前数组键 key()
key()函数返回input_array中当前指针所在位置的键。其形式如下:
mixed key(array array)
下面的例子通过迭代处理数组并移动指针来输出$fruits数组的键:
1 2 3 4 5 6 7 | $fruits = array ( "apple" => "red" , "banana" => "yellow" ); while ( $key = key( $fruits )) { printf( "%s <br />" , $key ); next( $fruits ); } // apple // banana |
注意,每次调用key()时不会移动指针。为此需要使用next()函数,这个函数的唯一作用就是完成推进指针的任务。
获取当前数组值 current()
current()函数返回数组中当前指针所在位置的数组值。其形式如下:
mixed current(array array)
下面修改前面的例子,这一次我们要获取数组值:
1 2 3 4 5 6 7 | $fruits = array ( "apple" => "red" , "banana" => "yellow" ); while ( $fruit = current( $fruits )) { printf( "%s <br />" , $fruit ); next( $fruits ); } // red // yellow |
获取当前数组键和值 each()
each()函数返回input_array的当前键/值对,并将指针推进一个位置。其形式如下:
array each(array array)
返回的数组包含四个键,键0和key包含键名,而键1和value包含相应的数据。如果执行each()前指针位于数组末尾,则返回false。
1 2 3 | $fruits = array ( "apple" , "banana" , "orange" , "pear" ); print_r ( each( $fruits ) ); // Array ( [1] => apple [value] => apple [0] => 0 [key] => 0 ) |
each() 经常和 list() 结合使用来遍历数组。本例与上例类似,不过循环输出了整个数组:
1 2 3 4 5 6 7 8 9 10 | $fruits = array ( "apple" , "banana" , "orange" , "pear" ); reset( $fruits ); while (list( $key , $val ) = each( $fruits )) { echo "$key => $val<br />" ; } // 0 => apple // 1 => banana // 2 => orange // 3 => pear |
因为将一个数组赋值给另一个数组时会重置原来的数组指针,因此在上例中如果我们在循环内部将 $fruits 赋给了另一个变量的话将会导致无限循环。
这就完成了数组的遍历。
【如何获取PHP数组的键与值呢】相关文章: