PHP如果在数组中,请使用该值执行某些操作

时间:2012-03-26 13:09:23

标签: php arrays string explode

我正在尝试检查某个值是否在数组中。如果是这样,抓取该数组值并对其执行某些操作。怎么会这样做?

以下是我正在尝试做的一个例子:

$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"    

}

4 个答案:

答案 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
}