键名和键值

array_key_exists—检查给定的键名或索引是否存在于数组中
语法

bool array_key_exists( mixed $key, array $search)

描述
  • array_key_exists() 在给定的 key 存在于数组中时返回 TRUE。key 可以是任何能作为数组索引的值。array_key_exists() 也可用于对象。
参数
参数 描述
key 要检查的键
search 一个数组,包含待检查的键
返回值
  • 成功时返回 TRUE, 或者在失败时返回 FALSE
举例
// 示例
$key_value_array_assoc = ['name' => '张三', 'age' => 18, 'email' => 'google@qq.com', 'address' => '山东省济南市', 'number' => 1];
$result = array_key_exists('name', $key_value_array_assoc);
var_dump($result);
// 结果
bool(true)

array_keys — 返回数组中部分的或所有的键名
语法

array array_keys( array $array[, mixed $search_value[, bool $strict = false]] )

描述
  • array_keys() 返回 array 数组中的数字或者字符串的键名。如果指定了可选参数 search_value,则只返回该值的键名。否则 array 数组中的所有键名都会被返回。
参数
参数 描述
array 一个数组,包含了要返回的键
search_value 如果指定了这个参数,只有包含这些值的键才会返回
strict 判断在搜索的时候是否该使用严格的比较(===)
返回值
  • 根据参数返回相应的键
举例
$key_value_array_assoc = ['name' => '张三', 'age' => 18, 'email' => 'google@qq.com', 'address' => '山东省济南市', 'number' => 1];
$key_value_array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// 示例1-不指定键名,返回所有键
$result = array_keys($key_value_array_assoc);
print_r($result); 
// 结果
Array
(
    [0] => name
    [1] => age
    [2] => email
    [3] => address
    [4] => number
)
// 示例2-指定键名,返回相应的键
$result = array_keys($key_value_array_assoc, '张三');
print_r($result);
// 结果
Array
(
    [0] => name
)
// 示例3-和示例4做对比
$result = array_keys($key_value_array_assoc, '1');
print_r($result);
// 结果
Array
(
    [0] => number
)
// 示例4-开启严格模式
$result = array_keys($key_value_array_assoc, '1', true);
print_r($result);
// 结果
Array
(
)
// 示例5-测试不存在的键
$result = array_keys($key_value_array_assoc, '测试没有对应的key,这里可以作为判断用');
print_r($result);
// 结果
Array
(
)

array_search — 在数组中搜索给定的值,如果成功则返回相应的键名
语法

mixed array_search( mixed $needle, array $haystack[, bool $strict = false] )

描述
  • 在 haystack 中搜索 needle 参数
参数
参数 描述
needle 搜索的值,Note: 如果needle是字符串,则比较以区分大小写的方式进行
haystack 这个数组
strict 如果可选的第三个参数 strict 为 TRUE,则 array_search() 将在 haystack 中检查完全相同的元素。这意味着同样检查 haystack 里 needle 的 类型,并且对象需是同一个实例
返回值
  • 如果找到了 needle 则返回它的键,否则返回 FALSE
  • 如果 needle 在 haystack 中出现不止一次,则返回第一个匹配的键。要返回所有匹配值的键,应该用 array_keys() 加上可选参数 search_value 来代替
  • 应使用 === 运算符来测试此函数的返回值
举例
// 示例1
$key_value_array_assoc = ['name' => '张三', 'age' => 18, 'email' => 'google@qq.com', 'address' => '山东省济南市', 'number' => 1];
$result = array_search('张三', $key_value_array_assoc);
var_dump($result);
$result = array_search('张三2', $key_value_array_assoc);
var_dump($result);
// 结果
string(4) "name"
bool(false)

array_values — 返回数组中所有的值
语法

array array_values( array $input)

描述
  • array_values() 返回 input 数组中所有的值并给其建立数字索引
参数
参数 描述
input 这个数组
返回值
  • 返回含所有值的索引数组
举例
// 示例
$key_value_array_assoc = ['name' => '张三', 'age' => 18, 'email' => 'google@qq.com', 'address' => '山东省济南市', 'number' => 1];
$result = array_values($key_value_array_assoc);
print_r($result);
// 结果

Array
(
    [0] => 张三
    [1] => 18
    [2] => google@qq.com
    [3] => 山东省济南市
    [4] => 1
)

array_flip — 交换数组中的键和值
语法

array array_flip( array $trans)

描述
  • array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名
  • 注意 trans 中的值需要能够作为合法的键名,例如需要是 integer 或者 string。如果值的类型不对将发出一个警告,并且有问题的键/值对将不会反转
  • 如果同一个值出现了多次,则最后一个键名将作为它的值,所有其它的都丢失了
参数
参数 描述
trans 要交换键/值对的数组
返回值
  • 成功时返回交换后的数组,如果失败返回 NULL
    举例
    // 示例
    $key_value_array_assoc = ['name' => '张三', 'age' => 18, 'email' => 'google@qq.com', 'address' => '山东省济南市', 'number' => 1];
    $result = array_flip($key_value_array_assoc);
    print_r($result);
    // 结果
    Array
    (
      [张三] => name
      [18] => age
      [google@qq.com] => email
      [山东省济南市] => address
      [1] => number
    )
    

results matching ""

    No results matching ""