2015-04-04 49 views
-1

我有2个数组,其中包含单词和其他字和值。我有下面的代码将检查一个数组与另一个数组,并将添加值,并将返回总数。但是,如果字符串中存在常见单词,代码也会为它们添加值。在数组中的PHP特定字

在下面的例子中,我怎么才能得到确切的单词Green的值? 像下面的例子中I总应该是3,而不是15

$a_array = array(array("name"=> "Red", "price"=> "2"), 
array("name"=> "Green", "price"=> "3"), 
array("name"=> "Green Leaf", "price"=> "4"), 
array("name"=> "Green Light", "price"=> "8"), 
array("name"=> "Grey", "price"=> "1"), 
array("name"=> "Yellow", "price"=> "11")); 


$check = array(Blue, Green, Black,); 
$total = 0; foreach ($check as $key => $value): 
foreach ($a_array as $itemKey => $itemValue): 
if (strstr($itemValue['name'], $value)): 
$total += $itemValue['price']; 
continue; endif; endforeach; endforeach; 


echo "Total: $total"; 
+0

请赞成票也。谢谢 – 2016-02-03 07:21:49

回答

0

尝试这种情况: -

<?php 
    $a_array = array(array("name"=> "Red", "price"=> "2"), 
    array("name"=> "Green", "price"=> "3"), 
    array("name"=> "Green Leaf", "price"=> "4"), 
    array("name"=> "Green Light", "price"=> "8"), 
    array("name"=> "Grey", "price"=> "1"), 
    array("name"=> "Yellow", "price"=> "11")); 

    $check = array('Blue', 'Green', 'Black'); 
    $total = 0; foreach ($check as $key => $value): 
    foreach ($a_array as $itemKey => $itemValue): 
    if ($itemValue['name']== $value): // condition is changed here 
    $total += $itemValue['price']; 
    continue; endif; endforeach; endforeach; 

    echo "Total: $total"; 
?> 

输出是:总数:3

+0

谢谢你,它工作得很好! – Steve 2015-04-04 06:54:41

+0

欢迎您。:) :) – 2015-04-04 06:56:08

0

使用下面的代码。而不是使用strstr函数来匹配字符串使用'=='运算符。

if ($itemValue['name'] == $value): 

,而不是

if (strstr($itemValue['name'], $value)):