PHP数组表示

PHP数组表示,php,arrays,Php,Arrays,我有一个php数组,演示如下:- <?php $ads = array(); $ads [] = array( 'name' => 'Apple', 'duration' => '3', 'price' => "$5" ); $ads [] = array( 'name' => 'Orange', 'duration' => '2', 'price' => "$10" ); $ads

我有一个php数组,演示如下:-

<?php 
  $ads = array(); 
  $ads [] = array( 
  'name' => 'Apple', 
  'duration' => '3', 
  'price' => "$5"
  ); 

  $ads [] = array( 
  'name' => 'Orange', 
  'duration' => '2', 
  'price' => "$10"
  ); 

  $ads [] = array( 
  'name' => 'Banana', 
  'duration' => '5', 
  'price' => "$6"
  ); 

实际上,我应该如何将这两个演示结合起来?谢谢

可以修改迭代结果(只要在查询中只获取所需的属性)

可能您可以使用

$result = array();

$result = array_merge($ads,$fruit);

如果希望获得与第一个示例中类似的结构,可以修改第二个示例以创建新数组,并将其附加到现有的
$ads
数组中

$sql = "SELECT * from tb_fruit order by fruit_id ASC";
$result = mysql_query($sql_approve, $conn_fruit);

$ads = array();
while($record = mysql_fetch_array($result))
{
    $ads[] = array(
              'name' => $record['fruit_name'],
              'price' => $record['fruit_price'],
              'duration' => $record['fruit_duration']);
}

那么,您想用数据库中的信息填充“ads”数组吗?mysql_fetch_数组已经返回了一个非常合适的关联数组,这似乎有点违反直觉,但现在您可以看到:

$sql = "SELECT * from tb_fruit order by fruit_id ASC";
$result = mysql_query($sql_approve, $conn_fruit);
$ads = array();

while($record = mysql_fetch_array($result))
{
    $ads[] = array (
                       'name' => $record['fruit_name'],
                       'price' => $record['fruit_price'],
                       'duration' => $record['fruit_duration']
                   );
}
如果

  • 初始数组不仅是一个示例,而且是您可能用db数据覆盖的默认数据,以及

  • 水果名称是唯一的(排序主键)

  • 然后,您应该将主数组的数组键设置为水果名称的数组键,这样,如果db具有不同的值,它将自动被覆盖,但在其他情况下将被忽略。像这样:

      $ads ['Apple'] = array( 
      'duration' => '3', 
      'price' => "$5"
      ); 
    
      $ads ['Orange'] = array( 
      'duration' => '2', 
      'price' => "$10"
      ); 
    
      $ads ['Banana'] = array( 
      'duration' => '5', 
      'price' => "$6"
      ); 
    
    
    $sql = "SELECT * from tb_fruit order by fruit_id ASC";
    $result = mysql_query($sql_approve, $conn_fruit);
    
    $ads = array();
    while($record = mysql_fetch_array($result))
    {
        $ads[$record['fruit_name']]['price']    = $record['fruit_price'];
        $ads[$record['fruit_name']]['duration'] = $record['fruit_duration'];
    }
    
    现在,如果数据库中有“Apple”,则价格和持续时间将被覆盖,否则,它将停留在查询前设置的位置


    您可以更进一步,检查查询返回的价格和持续时间是否为空值(Null,“,0),并仅在该值不为空时设置该值,等等。但这更像是一个业务逻辑决策。

    如果您的表没有“动态数据”,这应该像“默认数据集”吗正如您所说的那样?请停止使用古老的
    mysql.*
    函数编写新代码。它们不再得到维护,社区已开始恢复。相反,您应该了解
    准备好的语句
    ,并使用或;我的密码有什么问题吗$doc=新的DOMDocument()$单据->格式输出=true$r=$doc->createElement(“ads”)$doc->appendChild($r);foreach($ads as$ad){$b=$doc->createElement(“ad”);$name=$doc->createElement(“name”);$name->appendChild($doc->createTextNode($ad['name']);$b->appendChild($duration=$doc->createElement(“duration”);$duration->appendChild($doc->createTextNode($ad['duration']);$b->appendChild($duration);$price=$doc->createElement(“price”);$price->appendChild($doc->createTextNode($ad['price']);$b->appendChild($price);$r->appendChild($b);}echo$doc->saveXML();$doc->save(“write.xml”)您可能想看看这个:还有这个
    $sql = "SELECT * from tb_fruit order by fruit_id ASC";
    $result = mysql_query($sql_approve, $conn_fruit);
    $ads = array();
    
    while($record = mysql_fetch_array($result))
    {
        $ads[] = array (
                           'name' => $record['fruit_name'],
                           'price' => $record['fruit_price'],
                           'duration' => $record['fruit_duration']
                       );
    }
    
      $ads ['Apple'] = array( 
      'duration' => '3', 
      'price' => "$5"
      ); 
    
      $ads ['Orange'] = array( 
      'duration' => '2', 
      'price' => "$10"
      ); 
    
      $ads ['Banana'] = array( 
      'duration' => '5', 
      'price' => "$6"
      ); 
    
    
    $sql = "SELECT * from tb_fruit order by fruit_id ASC";
    $result = mysql_query($sql_approve, $conn_fruit);
    
    $ads = array();
    while($record = mysql_fetch_array($result))
    {
        $ads[$record['fruit_name']]['price']    = $record['fruit_price'];
        $ads[$record['fruit_name']]['duration'] = $record['fruit_duration'];
    }