我有一张表格,上传了多张图片..表格中的字段是
++++++++++++++++++++++++++
id,user_id,photo,position
++++++++++++++++++++++++++
对用户ID可以最多8张图片。
现在,如果用户在假设1,3,5位置上传图像
当我必须在从数据库中取出后返回数组
我将得到1,3,5位置的值,但我必须返回所有位置从1到8的数组
因此,根据requiremnet位置1,数据库中的值为1,因为数据库中有值,但是对于位置2没有值,所以在数组中,位置2将为空白...
基本上,数据库中有值的位置将保存数据库中的值,而数据库中没有值的位置将为空白
职位是1 2 3 4 5 6 7 8
如何在php中完成?
答案 0 :(得分:0)
您无法从那里不存在的表值中获取。所以写这样的代码
$Something = 'test';
$aFromTable = array (1=>$Something,3=>$Something,5=>$Something);
for ($i=1;$i<9;$i++)
{
if (!isset($aFromTable[$i]))
$aFromTable[$i] = $Something;
}
var_dump($aFromTable);
或者像这样
$Something = 'test';
$aStandard[1] = null;
$aStandard[2] = null;
$aStandard[3] = null;
$aStandard[4] = null;
$aStandard[5] = null;
$aStandard[6] = null;
$aStandard[7] = null;
$aStandard[8] = null;
$aFromTable = array (1=>$Something,3=>$Something,5=>$Something);
$aFromTable = $aFromTable + $aStandard;
var_dump($aFromTable);
答案 1 :(得分:0)
选择一个位置为数组键的数组 例如......
$image[position] = image_name;
代码
$image[1] = image1;
$image[3] = $image3;
$image[5] = $image5;
现在按如下方式运行for循环
for($i=0;$i<8;$i++){
if(!isset($image[$i])) $image[$i] = '';
}
你得到了你想要的结果$ image array;
答案 2 :(得分:0)
<?php
$rows = [
['foo.jpg', 8],
['bar.jpg', 4],
['baz.jpg', 1]
];
$positions = array_fill(1, 8, null);
foreach($rows as $row) {
$positions[$row[1]] = $row[0];
}
var_export($positions);
Output:
array (
1 => 'baz.jpg',
2 => NULL,
3 => NULL,
4 => 'bar.jpg',
5 => NULL,
6 => NULL,
7 => NULL,
8 => 'foo.jpg',
)
Example SQL used to produce a rows array:
SELECT photo, position FROM photo_table WHERE user_id = 3