我正在尝试检查某个值是否在数组中。如果是这样,抓取该数组值并对其执行某些操作。怎么会这样做?
以下是我正在尝试做的一个例子:
$the_array = array("buejcxut->10", "jueofi31->20", "nay17dtt->30");
if (in_array('20', $the_array)) {
// If found, assign this value to a string, like $found = 'jueofi31->20'
$found_parts = explode('->', $found);
echo $found_parts['0']; // This would echo "jueofi31"
}
答案 0 :(得分:2)
这应该这样做:
foreach($the_array as $key => $value) {
if(preg_match("#20#", $value)) {
$found_parts = explode('->', $value);
}
echo $found_parts[0];
}
将“20”替换为您想要的任何值。
答案 1 :(得分:1)
你可能最好在foreach循环中检查它:
foreach ($the_array as $key => $value) {
if ($value == 20) {
// do something
}
if ($value == 30) {
//do something else
}
}
你的数组定义很奇怪,你的意思是:
$the_array = array("buejcxut"=>10, "jueofi31"=>20, "nay17dtt"=>30);
使用$ key上方的数组是元素键(buejcxut,jueofi31等),$ value是该元素的值(10,20等)。
答案 2 :(得分:1)
以下是如何使用正则表达式搜索数组值的示例。
<?php
$the_array = array("buejcxut->10", "jueofi31->20", "nay17dtt->30");
$items = preg_grep('/20$/', $the_array);
if( isset($items[1]) ) {
// If found, assign this value to a string, like $found = 'jueofi31->20'
$found_parts = explode('->', $items[1]);
echo $found_parts['0']; // This would echo "jueofi31"
}
您可以在此处查看演示:http://codepad.org/XClsw0UI
答案 3 :(得分:0)
如果你想定义一个索引数组,它应该是这样的:
$my_array = array("buejcxut"=>10, "jueofi31"=>20, "nay17dtt"=>30);
然后你可以使用in_array
if (in_array("10", $my_array)) {
echo "10 is in the array";
// do something
}