2015-04-04 54 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)):