Php 当我只知道字符串的一部分时,如何查找数组的索引?
我试图找到一个可以在数组中查找索引的函数,而我只知道字符串的一部分。Php 当我只知道字符串的一部分时,如何查找数组的索引?,php,arrays,Php,Arrays,我试图找到一个可以在数组中查找索引的函数,而我只知道字符串的一部分。 函数array_search仅在我知道整个字符串的情况下才返回索引。 当我只有数组项的子字符串时,如何获取索引/键 $array = array(0 => 'blue pants', 1 => 'red pants', 2 => 'green pants', 3 => 'green pants'); echo array_search('red', $array); 我需要回显1。使用foreach
函数array_search仅在我知道整个字符串的情况下才返回索引。
当我只有数组项的子字符串时,如何获取索引/键
$array = array(0 => 'blue pants', 1 => 'red pants', 2 => 'green pants', 3 => 'green pants');
echo array_search('red', $array);
我需要回显1。使用foreach()
对数组和strpos()进行迭代,以便在数组元素中搜索指针
$array = [0 => 'blue pants', 1 => 'red pants', 2 => 'green pants', 3 => 'green pants'];
foreach ($array as $key => $value) {
if (strpos($value, 'red') !== false) {
echo "Key={$key}, Value: {$value}";
break;
}
}
正在工作。使用foreach()
在阵列和strpos()上进行迭代,以便在阵列的元素中搜索指针
$array = [0 => 'blue pants', 1 => 'red pants', 2 => 'green pants', 3 => 'green pants'];
foreach ($array as $key => $value) {
if (strpos($value, 'red') !== false) {
echo "Key={$key}, Value: {$value}";
break;
}
}
正在工作。我从php.net获取了这个函数,该函数是从一根针的一部分中找到数组的值的。 然后使用找到的值,您可以使用array_search获得索引的值
function array_find($needle, $haystack)
{
foreach ($haystack as $item)
{
if (strpos($item, $needle) !== FALSE)
{
return $item;
break;
}
}
}
$array = array(0 => 'blue pants', 1 => 'red pants', 2 => 'green pants', 3 => 'green pants');
$completValue = array_find('red', $array);
echo array_search($completValue , $array);
我从php.net中获取了这个函数,该函数是从一根针的一部分中查找数组的值。 然后使用找到的值,您可以使用array_search获得索引的值
function array_find($needle, $haystack)
{
foreach ($haystack as $item)
{
if (strpos($item, $needle) !== FALSE)
{
return $item;
break;
}
}
}
$array = array(0 => 'blue pants', 1 => 'red pants', 2 => 'green pants', 3 => 'green pants');
$completValue = array_find('red', $array);
echo array_search($completValue , $array);
您还可以使用preg_grep,它是数组的正则表达式。
这将返回数组中的所有红色项 由于它是正则表达式,您还可以将模式设置为不包含“蓝色红领裤”,而strpos会有稍微多的问题
$return = preg_grep("/red/", $array);
var_dump($return);
/*
array(2) {
[1]=>
string(9) "red pants"
[4]=>
string(11) "red t-shirt"
}
*/
如果要排除蓝色红领裤,请使用图案/\b/
要使图案拾取“红色”、“红色”、“红色”,请使用
/\b/i
注意到你想要钥匙作为回报。只需执行
array\u键($return)代码>并且您将在提到“红色”的地方获得键。您还可以使用preg\u grep,它是数组的正则表达式。
这将返回数组中的所有红色项
由于它是正则表达式,您还可以将模式设置为不包含“蓝色红领裤”,而strpos会有稍微多的问题
$return = preg_grep("/red/", $array);
var_dump($return);
/*
array(2) {
[1]=>
string(9) "red pants"
[4]=>
string(11) "red t-shirt"
}
*/
如果要排除蓝色红领裤,请使用图案/\b/
要使图案拾取“红色”、“红色”、“红色”,请使用/\b/i
注意到你想要钥匙作为回报。只需执行array\u键($return)代码>你会在提到“红色”的地方得到钥匙。这正是我需要的。非常感谢:-)这正是我需要的。非常感谢:-)