PHP学习笔记(3) 数组相关函数②.

定为数组元素.

在数组中搜索一个特定值,如果找到这个值则返回true,否则返回false

  • in_array()
  • boolean in_array(mixed needle,array haystack[.boolean strict])

例:

<?php

$word = 'a';

$words = array('a','b','c','d','e','f');

echo  in_array($word,$words)?'yes':'no';

// 将输出yes

echo in_array($word,$words,1)?'yes':'no';

//此时将同时判断类型.同样输出yes

--------------------------分割线--------------------

搜索关联数组的键

可以是数字索引,也可以是关联索引.

  • array_key_exists()----------数组_键_存在
  • boolean array_key_exists(mixed key ,array array)

例:

<?php
$search_array = array('first' => 1, 'second' => 4);
if (array_key_exists('first', $search_array)) {
    echo "The 'first' element is in the array";
}
?>
----------------------分割线-------------------------------
          上例摘自PHP手册
----------------------------------------------------------
在数组中搜索相关的值,成功返回相关值得索引,没有找到或者失败返回false;
  • array_search()
  • mixed array_search(mixed needle, array haystack [,boolean strict]);
例:
<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
?>
---------------------分割线------------------
          上例摘自PHP手册
---------------------------------------------------
一些注意的地方,
首先,如果在数组中查找的是字符串,那么查找的字符串将比对大小写.
第二,如果返回的是数组的第一个元素的键,而恰巧数组又是数字索引的.那么返回的值将是0,与bool型的false等价,解决方案,1,使用===判断.2,加入参数三强制判断类型.
 
--------------------------------------------
获取数组的键.函数返回一个数组,其中包含所搜索数组中找到的所有的键.如果提供了可选参数search_value,则指返回与其值匹配的键.
  • array_keys()
  • array array_keys ( array $input [, mixed $search_value [, bool $strict ]] )
例:
<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));
?>

上例将输出:

Array ( [0] => 0 [1] => color )
 Array ( [0] => 0 [1] => 3 [2] => 4 )
 Array ( [0] => color [1] => size ) 
-------------------分割线-------------------
上例摘自PHP手册,注意几点,
可以用这个函数给多维数组的首维建立索引数组.
首先,这个可以是array_search的替代函数,同样返回键名.
第二,这个函数的第三个参数可选,同样存在array_search里面的布尔值等价问题.所以可以使用===判断类型或者指定第三个参数来判断返回值.
---------------还是分割线---------------
获取数组的值,
  • array_values()
  • array array_values ( array $input )
array_values()返回给定数组中的所有值,并重新定义数组的索引为数字索引,
如果使用这个函数会使原来数组的索引丢失.
使用这个函数可以对数组重新进行数字索引排列
如果给定的变量不为数组.会报警告.
Warning: array_values() expects parameter 1 to be array, string given in...
例:
<?php
  $array = array('a'=>'a',1=>'b','c','test'=>'d','e','f','g');
  print_r($array);
  $var = '';
  $bool = 0;$array1 = array_values($array);
  print_r($array1);
  $array2 = array_values($var);
  print_r($array2);
  $array3 = array_values($bool);
上面的会输出
 
 
Array
  (
  [a] => a
  [1] => b
  [2] => c
  [test] => d
  [3] => e
  [4] => f
  [5] => g
  )
  Array
  (
  [0] => a
  [1] => b
  [2] => c
  [3] => d
  [4] => e
  [5] => f
  [6] => g
  )
  <br />
  <b>Warning</b>: array_values() expects parameter 1 to be array, string given in
      <b>Warning</b>: array_values() expects parameter 1 to be array, string given in
-------------------------------------------
这个就先总结到这里.回头继续总结.
原文地址:https://www.cnblogs.com/swordphp/p/2805073.html