我有一个带有演示文稿的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"
);
然后,我想用来自数据库的动态数据替换静态数据: -
$sql = "SELECT * from tb_fruit order by fruit_id ASC";
$result = mysql_query($sql_approve, $conn_fruit);
while($record = mysql_fetch_array($result))
{
$fruit_id = $record['fruit_id'];
$fruit_name = $record['fruit_name '];
$fruit_price= $record['fruit_price'];
$fruit_duration= $record_approve['fruit_duration'];
}
实际上,我该如何将两个演示文稿组合在一起?谢谢!
答案 0 :(得分:1)
可以修改结果的迭代(只要在查询中提取所需的属性)
$fruit = array();
while($record = mysql_fetch_array($result))
{
$fruit[] = $record;
}
可能您可以使用 array_merge
$result = array();
$result = array_merge($ads,$fruit);
答案 1 :(得分:1)
如果要获得与第一个示例中的结构类似的结构,可以修改第二个以创建新数组并将其附加到现有的$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']);
}
答案 2 :(得分:0)
那么,您想用数据库中的信息填充“广告”数组吗?看起来相当违反直觉,因为mysql_fetch_array已经返回了一个非常合适的关联数组,但是你现在就去了:
$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']
);
}
答案 3 :(得分:0)
如果
初始数组不仅仅是一个示例,而是您可能使用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),并且只设置值,如果它不是空的,等等。但那是更多的业务逻辑决策。