php根据第二个表对数据进行排序

标签 php mysql for-loop

我有两个表:表 1 和表 2

enter image description here

我需要对数据进行排序,如 TableView 中所示。

我已经采取了:

foreach($Table1 as $row1 )
{
    foreach($Table2 as $row2 )
    {
          if($row1->id == $row2->selected_id)
          {
                  show??
          }
    }

}

请不要担心查询:它已解决真正的问题是:

只有一个问题:表1是由20个不同的函数生成的,并收集到表1中。用户通过选择来选择他们想要查看的内容。因此,如果总共 7 行并且用户选择 3 行,那么数据将被排序,显示在第一行选择 3 行,在 3 行之后其余行。

这是正确的方法吗?还是有更简单的方法 我正在使用MySQL

请帮助任何人吗?

最佳答案

根据您的additional question ,看来您不想为此使用 MySQL,并且您的用户选择实际上是一个像这样的数组:

$filter = [ 3, 4, 7, 8 ];

使用array_reduce过滤原始$Table1数组。使用此方法,您可以获得一个数组 ($filtered),其中元素 0 中包含用户选择,元素 1 中包含其他值:

$filtered = array_reduce
(
    $Table1,
    function( $carry, $item ) use( $filter )
    {
        $index = !in_array( $item['id'], $filter );
        $carry[$index][] = $item;
        return $carry;
    },
    [ [], [] ]
);

然后,将 $filtered 数据与 call_user_func_array 合并:

$result = call_user_func_array( 'array_merge', $filtered );

结果:

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => C
        )
    [1] => Array
        (
            [id] => 4
            [name] => D
        )
    [2] => Array
        (
            [id] => 7
            [name] => G
        )
    [3] => Array
        (
            [id] => 8
            [name] => H
        )
    [4] => Array
        (
            [id] => 1
            [name] => A
        )
    [5] => Array
        (
            [id] => 2
            [name] => B
        )
    [6] => Array
        (
            [id] => 5
            [name] => E
        )
    [7] => Array
        (
            [id] => 6
            [name] => F
        )
)

关于php根据第二个表对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36620806/

相关文章:

php - 我如何确定状态并在 PHP MySQL 中执行操作

php - MySQL Select 选择 "or"并按该字段排序

javascript - PHP 无法将所选表中的数组填充到 json_encode 并在 javascript 上接收它

php - 用 str_ireplace 替换不区分大小写的字符串不起作用

php - 根据值显示数据库字段名称

PhpStorm 没有在断点处停止 Xdebug

mysql - 左连接与内连接

javascript - 如何在 JavaScript 中混合变量和循环索引?

c - scanf 不断取值(输入)

Ruby 嵌套每个 do 循环