0

使用explode('<br>',$String)我有一个带有子字符串的Array1 。

我想使用Array2 作为针来循环 Array1,如果找到 Sub-String 则返回 Array2 值。

例子:

$Array1 { [0]=> string(3) "red"
          [1]=> string(4) "Blue"
          [3]=> string(5) "Black" };


$Array2 [
        'red' => "Red",
        'Yellow' => "Yellow"];

完成此任务的最佳方法/功能是什么。

在上面的示例中, Array1 ( Haystack) 有一个子字符串 "red" ,我希望能够在 Array2 中定义 Key => values 以用作针头,例如当找到某个 Key 时返回其值。

// Output above

"Red"

谢谢

4

2 回答 2

0

你可以用一个简单的foreach循环来做到这一点

function getColorOrSomething(&$array1, &$array2){
    foreach($array2 as $key=>$value)
         if(in_array($key, $array1))
            return $value;


     return null; //no match found

}

然后当然用2个数组调用函数

$selected = getColorOrSomething($array1, $array2);
于 2013-04-27T16:48:20.927 回答
0

您可以使用这样的嵌套循环:

$key = "";
$value = "";

foreach( $Array1 as $ar1 ) {
    foreach( $Array2 as $ak2=>ar2 ) {
        if( preg_match("/" . $ak2 . "/", $ar1) ) {
            $key = $ak2;
            break;
        }

        if( $key != "" ) {
            $value = $ar1; 
            break;
        }
    }
}

echo "Key: " . $key . " & Value: " . $value;

像这样。。

于 2013-04-27T16:55:29.237 回答