PHP数组与字符串匹配

时间:2017-08-30 11:10:45

标签: php arrays

是否可以使用键或值

搜索数组中的字符串
  

像字符串apple一样搜索 -

array(
  "a"=>"banana",
  "apple"=>"fruit",
  'b'=>"apple"
)

apple与数组键或值匹配时,则返回true,否则false

5 个答案:

答案 0 :(得分:3)

  

当“apple”在上方数组中与值匹配时,则返回 true ,否则 false

简短的“单线”:

$has_apple = key_exists('apple', $arr) || in_array('apple', $arr);

答案 1 :(得分:1)

<?php

$data = array("a"=>"banana","apple"=>"fruit",'b'=>"apple");

function key_or_value_exists($needle, $haystack) {
    return array_key_exists($needle, $haystack) || in_array($needle, $haystack);
}

var_dump(key_or_value_exists('apple', $data));
var_dump(key_or_value_exists('banana', $data));
var_dump(key_or_value_exists('papaya', $data));

输出:

boolean true
boolean true
boolean false

答案 2 :(得分:0)

您可以使用array_search()功能执行 -

  

示例:按值{Index Array}

搜索
$array = array(
   'blue',
   'red',
   'green',
   'red'
);
$key   = array_search('green', $array); #$key = 2;
$key   = array_search('red', $array);   #$key = 1;
  

示例:按值{Associative Array}

搜索
$array = array(
   'A'=>'blue',
   'B'=>'red',
   'C'=>'green',
   'D'=>'red'
);
$key   = array_search('green', $array); #$key = 'C';
$key   = array_search('red', $array);   #$key = 'D';
$key   = array_search('NO', $array);    #$key = false;

答案 3 :(得分:0)

Isset()可以做到。

$arr =array("a" => "banana","apple" => "fruit",'b' => "apple");

If(isset($arr["apple"]) || array_search("apple", $arr)){
     Echo "true";
}Else{
     Echo "false";
}

https://3v4l.org/65jSS

编辑注意到你也需要价值 为此你可以使用array_search(needle,haystack)

如果是您正在寻找的bool值,您也可以这样做:

$bool = (bool)isset($arr["apple"]) || array_search("apple", $arr);

答案 4 :(得分:0)

查找字符串是否为数组中的键或值就像调用array_key_exists()in_array()一样简单。如果其中一个返回true,那么该字符串将在数组中使用:

function findInArray(array $array, $item)
{
    return array_key_exists($item, $array) || in_array($item, $array);
}

// Test
$input = array(
    'a'     => 'banana',
    'apple' => 'fruit',
    'b'     => 'apple',
    'pear'  => 'fruit',
);

// 'banana' is a value in the array
printf("banana: %s\n", findInArray($input, 'banana') ? 'Yes' : 'No');
// 'apple' is both a key and a value in the array
printf("apple:  %s\n", findInArray($input, 'apple') ? 'Yes' : 'No');
// 'pear' is a key in the array
printf("pear:   %s\n", findInArray($input, 'pear') ? 'Yes' : 'No');
// 'mango' is not present in the array, either as key or value
printf("mango:  %s\n", findInArray($input, 'mango') ? 'Yes' : 'No');

输出(如预期)是:

banana: Yes
apple:  Yes
pear:   Yes
mango:  No