2017-04-10 61 views
1
<?php 
$bookrec=array(
'book1'=>array('callno'=>123005,'price'=>number_format(1380,2),'desc'=>'Attack on Titan Anthology'), 
'book2'=>array('callno'=>123006,'price'=>number_format(844,2),'desc'=>'Binge'), 
'book3'=>array('callno'=>123004,'price'=>number_format(598,2),'desc'=>'A Work in Progress'), 
'book4'=>array('callno'=>123003,'price'=>number_format(668,2),'desc'=>'The Amazing Book is Not on Fire: The World of Dan and Phil'), 
'book5'=>array('callno'=>123002,'price'=>number_format(760,2),'desc'=>'Children of Eden: A Novel') 
); 

$sumbook=array(); 

echo "<table>"; 
echo "<tr><b> 
    <td>Call Number</td><td>Price</td><td>Book Title</td> 
    </b></tr>"; 
while(list($booknum,$rec)=each($bookrec)){ 
    echo "<tr>"; 
    foreach($rec as $data){ 
     echo "<td>". $data."<br></td>"; 
     foreach($data as $k => $val){ 
      if(array_key_exists($val,$sumbook)) 
       $sumbook[$val]['price']=$sumbook[$val]['price']+$data['price']; 
      else if($k == 'desc' && $k == 'callno') 
       $sumbook[$val] = $data; 
     } 
    } 
} 
echo "<br></tr>"; 
echo "</table>"; 
echo "TOTAL AMOUNT: Php ".$sumbook;?> 

我正在爲下週完成此代碼。另外,我是一名學生,剛剛開始使用PHP。我的問題是,我試圖輸出給定數組中['price']的總和,但它給了我這個錯誤:查找特定多維數組的總和php

Invalid argument supplied for foreach

我也想解決這個問題,不同的方式,但我真的不明白這一點。請幫忙。 :) 謝謝!!

+0

使用array_column獲取價格列並使用array_sum添加<?php echo array_sum(array_column($ boo KREC, 「價格」)); – JYoThI

回答

0

我覺得你有很多循環錯誤只要按照這個代碼,同時也明白瞭如何遍歷使用foreach

數組
$sumbook=array(); 

    $total =0; 
    echo "<table>"; 
    echo "<tr><b> 
      <td>Call Number</td><td>Price</td><td>Book Title</td> 
      </b></tr>"; 

    foreach($bookrec as $key1=>$rec) 
    { 
     echo "<tr>"; 

     foreach($rec as $key2=>$data) 
     { 

      echo "<td>". $data."<br></td>"; 

       if($key2="price") 
       { 

       $total+=$data; 
       } 

     } 

     echo "</tr><br>"; 
    } 

    echo "</table>"; 
    echo "TOTAL AMOUNT: Php ".$total; 

    ?> 
+0

謝謝!我會試着理解這個.. :) –

+0

如果答案對你有用,用綠色標記標記它對未來的用戶參考很有用@MNNarvaez – JYoThI

0

你的第一個foreach循環有一個錯誤的變量名,並且你初始化爲你的數組。

的foreach($ bookrec爲$數據){

}

+0

謝謝你告訴我錯誤。我馬上改正它。 –

+0

沒問題,樂意幫忙 –

1
<?php 
$bookrec=array(
'book1'=>array('callno'=>123005,'price'=>number_format(1380,2),'desc'=>'Attack on Titan Anthology'), 
'book2'=>array('callno'=>123006,'price'=>number_format(844,2),'desc'=>'Binge'), 
'book3'=>array('callno'=>123004,'price'=>number_format(598,2),'desc'=>'A Work in Progress'), 
'book4'=>array('callno'=>123003,'price'=>number_format(668,2),'desc'=>'The Amazing Book is Not on Fire: The World of Dan and Phil'), 
'book5'=>array('callno'=>123002,'price'=>number_format(760,2),'desc'=>'Children of Eden: A Novel') 
); 

$sumbook=array(); 

echo "<table>"; 
echo "<tr><b> 
    <td>Call Number</td><td>Price</td><td>Book Title</td> 
    </b></tr>"; 
foreach($bookrec as $key1=>$rec) 
{ 
    echo "<tr>"; 

    foreach($rec as $key2=>$data) 
    { 

     echo "<td>". $data."<br></td>"; 

      if($key2="price") 
      { 

      $total+=$data; 
      } 

    } 

    echo "</tr><br>"; 
} 
echo "<br></tr>"; 
echo "</table>"; 
echo "TOTAL AMOUNT: Php ".$sumbook;?>