2014-02-06 130 views
1
$item= "stackoverflow"; 
$price = "30.00"; 

$cs1_array = array(); 
$cs1_array['item'] = $item; 
$cs1_array['price'] = $price; 

    if($cs1_array > 0){ 
      echo "<table>"; 
      foreach ($cs1_array as $item){ 
       echo "<tr>"; 
       echo "<td>{$item['item']}</td><td>{$item['price']}</td>"; 
       echo "</tr>"; 
      } 
      echo "</table>"; 
     } 

这将只输出数组的第一个字母表。例如,它将只显示stackoverflow的字母s。我想显示整个计算器字,怎么做?PHP foreach循环只显示数组的第一个字母

+1

'如果($ cs_array> 0)'不作太多爆棚感。你究竟想在这里检查什么?如果你想检查数组是否有任何成员,可以使用if(count($ cs_array)> 0)',如果你想检查数组是否设置为不等于“false”的任何东西(数组, 'false','null',空字符串,'0'),使用'if($ cs1_array)'。 –

+0

已注意。感谢您的建议。 – user3277691

回答

1

你不需要的循环,如果你只有一个item和一个price阵列中所有:

$item= "stackoverflow"; 
$price = "30.00"; 

$cs1_array = array(); 
$cs1_array['item'] = $item; 
$cs1_array['price'] = $price; 

    if(sizeof($cs1_array) > 0){ 
      echo "<table>"; 
      echo "<tr>"; 
      echo "<td>{$cs1_array['item']}</td><td>{$cs1_array['price']}</td>"; 
      echo "</tr>"; 
      echo "</table>"; 
    } 

不过,如果你想拥有的itemprice多个实例,你需要数组的数组:

$cs1_array = array(); 
$cs1_array[] = array(
    "item" => "stackoverflow", 
    "price" => "30.00" 
); 
$cs1_array[] = array(
    "item" => "superuser", 
    "price" => "40.00" 
); 
$cs1_array[] = array(
    "item" => "serverfault", 
    "price" => "20.00" 
); 
// and so on 

作为更简洁替代上面的代码,可以创建在阵列并在单个语句中使用值填充:

$cs1_array = array(
    array(
     "item" => "stackoverflow", 
     "price" => "30.00" 
    ), 
    array(
     "item" => "superuser", 
     "price" => "40.00" 
    ), 
    array(
     "item" => "serverfault", 
     "price" => "20.00" 
    ), 
    // and so on 
); 

然后foreach循环将正常工作:

if(sizeof($cs1_array) > 0){ 
    echo "<table>"; 
     foreach($cs1_array as $item){ 
     echo "<tr>"; 
     echo "<td>{$item['item']}</td><td>{$item['price']}</td>"; 
     echo "</tr>"; 
     } 
    echo "</table>"; 
} 
+1

嗯,他可能想要显示多个项目。 – TimWolla

+1

亲爱的downvoter,我可以知道我的回答有什么问题吗? –

+0

我已经向你解释了你的答案有什么问题,现在你修复了它,我将删除downvote。 – TimWolla

2

你做创建一个单级阵列,而你需要的是一个多维数组(即在一个数组的数组):

$cs1_array = array(); 
$cs1_array[] = array(
    'item' => $item, 
    'price' => $price 
); 

比较:

// wrong 
array(2) { 
    ["item"]=> 
    string(13) "stackoverflow" 
    ["price"]=> 
    string(5) "30.00" 
} 

// right 
array(1) { 
    [0]=> 
    array(2) { 
    ["item"]=> 
    string(13) "stackoverflow" 
    ["price"]=> 
    string(5) "30.00" 
    } 
} 
+1

我明白了,我明白了。多谢你们。 – user3277691

相关问题