2017-08-09 97 views
0
$arrayDif = array(); 
$arrayDif[] = array('employer' => $employer, 
        'comment' => $comment, 
        'value' => $resultValue); 

從循環中填充。下面是我填寫的數組。我需要能夠通過「僱主」和「評論」找到匹配並提取值,以便我可以重新更新此值。從多維數組中提取值

Array 
(
    [0] => Array 
     (
      [employer] => Albury-Wodonga 
      [comment] => allOtherMembers 
      [value] => 7 
     ) 

    [1] => Array 
     (
      [employer] => Albury-Wodonga 
      [comment] => associateMembers 
      [value] => 1 
     ) 
+0

現在我刪除了我完整的答案,我更好地理解你的問題。你需要學習循環一個數組。那裏有很多的教程。更好的是,你剛剛被顯示就學會了。你需要一個'foreach()'循環。 – Difster

+0

謝謝我希望能夠做一個命令來獲得結果。 –

回答

0

不知道這是你在找什麼,但在這裏你去。我會使用一個函數和簡單的循環。

<?php 
 
    $arrayDif = array(); 
 

 
    $arrayDif[] = array(
 
        array('employer' => "Albury-Wodonga", 'comment' => "allOtherMembers", 'value' => "1 star"), 
 
        array('employer' => "Employer2", 'comment' => "Good Job", 'value' => "2 stars"), 
 
        array('employer' => "Employer3", 'comment' => "Smart", 'value' => "3 stars") 
 
       ); 
 
    
 
    // Function for searching the array for the matches and returning the value of the match. 
 
    function SearchMe($array, $searchEmployer, $searchComment){ 
 
     for($i = 0; $i < count($array); $i++){ 
 
      for($j = 0; $j < count($array[$i]); $j++){ 
 
       
 
       if(
 
        $array[$i][$j]["employer"] == $searchEmployer && 
 
        $array[$i][$j]["comment"] == $searchComment 
 
       ){      
 
        return $array[$i][$j]["value"]; 
 
       } 
 
      } 
 
     } 
 
     return "No Match"; 
 
    } 
 
    
 
    echo SearchMe($arrayDif, "Albury-Wodonga", "allOtherMembers"); 
 
?>

+0

這與我嘗試過的東西很接近。您的解決方案有一個'未定義偏移量:0'和1和2 它發生在行上:$ array [$ i] [$ j] [「employer」] –

+0

對不起,您看到了這個錯誤。我在頁面上運行上述完全相同的代碼,並且工作正常。 – Icewine

2

一個命令提取並重新更新的價值,我建議使用foreach循環

<?php 
 
    $arrayDif = array(); 
 

 
    $arrayDif[] = array('employer' => "AAA", 'comment' => "comment 1", 'value' => "1"); 
 
    $arrayDif[] = array('employer' => "BBB", 'comment' => "comment 2", 'value' => "2"); 
 
    $arrayDif[] = array('employer' => "CCC", 'comment' => "comment 3", 'value' => "3"); 
 
    
 
    // function for setting the value or returning the value 
 
    // notice the $array here is a reference to the real array 
 
    function func(&$array, $employer, $comment, $value = ''){ 
 
     // $v is also a reference 
 
     foreach ($array as $k => &$v) { 
 
     \t if($v['employer'] == $employer && $v['comment'] == $comment) { 
 
     \t  if(empty($value)) { 
 
     \t   return $v['value']; 
 
     \t  } else { 
 
     \t   $v['value'] = $value; 
 
     \t  } 
 
     \t } 
 
     } 
 
     return "Not Found."; 
 
    } 
 
    
 
    //update 
 
    func($arrayDif, 'AAA', 'comment 1', "123123"); 
 
    
 
    //search 
 
    echo func($arrayDif, 'AAA', 'comment 1'); 
 
?>

+0

謝謝。提供正確的值。 –

+0

您可以將其標記爲「已接受」^^/ – Zhwt