gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 11:35:47 25 4
gpt4 key购买 nike

我有两个表:表 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com