在php中按顺序排列和排列?

时间:2017-07-12 07:23:00

标签: php arrays

我有一张表格,上传了多张图片..表格中的字段是

++++++++++++++++++++++++++
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中完成?

3 个答案:

答案 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