PHP 百分网手机站

如何获取PHP数组的键与值呢

时间:2018-05-14 12:43:46 PHP 我要投稿

如何获取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数组的键与值呢】相关文章:

1.PHP学习之数组值操作技巧

2.PHP中多态如何实现呢

3.如何获取长尾关键词?

4.浅谈PHP如何判断数组是否为空

5.PHP指定字段的多维数组排序方法

6.分享php数组去除空值函数

7.关于PHP实现数组队列的复制代码

8.如何学习PHP-PHP入门指导