2017-03-02 26 views
1

从数组值显示它的位置我有一组阵列数据的我需要从该阵列找出匹配字和使用PHP

的值
$my_word = 'mbusa.com'; 

$array_data = array:6 [ 
    0 => array:2 [ 
    0 => "Mercedes-Benz Luxury Cars: Sedans, SUVs, Coupes and Wagons" 
    1 => "/l/?kh=-1&uddg=https%3A%2F%2Fwww.mbusa.com%2Fmercedes%2Findex" 
    ] 
    1 => array:2 [ 
    0 => "Mercedes-Benz - International Corporate Website" 
    1 => "/l/?kh=-1&uddg=https%3A%2F%2Fwww.mercedes%2Dbenz.com%2F" 
    ] 
    2 => array:2 [ 
    0 => "New Mercedes-Benz Cars - Autotrader" 
    1 => "/l/?kh=-1&uddg=http%3A%2F%2Fwww.autotrader.com%2FMercedes%2BBenz%2Dcars.jsp" 
    ] 
    3 => array:2 [ 
    0 => "Mercedes-Benz C-Class - mbusa.com" 
    1 => "/l/?kh=-1&uddg=https%3A%2F%2Fwww.mbusa.com%2Fmercedes%2Fvehicles" 
    ] 
    4 => array:2 [ 
    0 => "Mercedes-Benz - New models: Pricing, MPG, and Ratings | Cars.com" 
    1 => "/l/?kh=-1&uddg=https%3A%2F%2Fwww.cars.com%2Fresearch%2Fmercedes_benz%2F" 
    ] 
    5 => array:2 [ 
    0 => "Mercedes-Benz Reviews - Mercedes-Benz Cars | Edmunds" 
    1 => "/l/?kh=-1&uddg=https%3A%2F%2Fwww.edmunds.com%2Fmercedes%2Dbenz%2F" 
    ] 
    6 => array:2 [ 
    0 => "Mercedes-Benz - Wikipedia" 
    1 => "/l/?kh=-1&uddg=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FMercedes%2DBenz" 
    ] 
    ] 

在该阵列中找出匹配词,我需要找到my_word并需要显示位置mbusa.com found at N position

我米用下面的代码

$matches = array_filter($array_data, function($var) use ($my_word){ 

    return preg_match("/\b$my_word\b/i", $var); 

}); 

试图但它给错误等

的preg_match()预计参数2为字符串,数组给定

任何建议请 ?

谢谢。

+0

迭代$ array_data并比较$ my_word和$ array_data [i] [1]的值。我不确定在PHP中的确切语法。 –

+0

N postition的意思是? –

+0

我需要知道myword匹配的位置 – 06011991

回答

2

你可以像下面: -

foreach ($array_data as $key=>$val){ 
    foreach ($val as $key1=>$v){ 
     if(strpos($v,$my_word)!==false){ 
      echo 'match position is $array_data['.$key."][".$key1."]"; 
      echo PHP_EOL; 
     } 
    } 
} 

输出: - https://eval.in/745846

+0

5367683很高兴为您效劳。 –

+0

感谢您的帮助。在这里代码中的一个小问题我的网址即将到来像'/ l /?kh = -1&uddg = https%3A%2F%2Fwww.mbusa.com%2Fmercedes%2Findex'但我的实际网址是https:// www .mbusa.com/mercedes/index'。但是,如何在我的视图中以实际格式打印此文件。建议请。 – 06011991

+0

阅读关于'urldecode()'和'urlencode()'功能在php –

0

你可以用它来寻找其他内一个字符串出现的对strpos功能:

$text = "/l/?kh=-1&uddg=https%3A%2F%2Fwww.mbusa.com%2Fmercedes%2Findex"; 

if (strpos($text, 'mbusa') !== false) { 
    echo 'true'; 
} 
+0

我需要遍历整个数组。 – 06011991

1

这样,你可以这样做:

$count = 0; 

for ($i = 0; $i < count($array_data); $i++) { 
    for ($j = 0; $j < count($array_data[$i]); $j++) { 
     if (strpos($array_data[$i][$j], 'mbusa') !== false) { 
      echo "Found at Postion ".$j."<br>"; 
      echo $count++; 
     } 
    } 
} 
echo "Found " . $count . "Times";