Rumah >pembangunan bahagian belakang >tutorial php >截取符合条件的数组,该如何解决

截取符合条件的数组,该如何解决

WBOY
WBOYasal
2016-06-13 12:25:35805semak imbas

截取符合条件的数组

<br />$arr = Array<br />(<br />    6 => Array<br />        (<br />            id=> 358<br />            level=> 6<br />        )<br />    4=> Array<br />        (<br />            id => 354<br />            level => 4<br />        )<br />    5 => Array<br />        (<br />            id => 353<br />            level => 5<br />        )<br />)<br />

有上面这样一个数组按键的顺序来来截取合适的数组
如果key的排序为6的在前面 如上列 key排序为 6,4,5就只取
$arr = Array
(
    6 => Array
        (
            id=> 358
            level=> 6
        )
}
如果数组排序为5,4,6 就只取5,6两个
$arr = Array
(
    5 => Array
        (
            id => 353
            level => 5
        )
    6 => Array
        (
            id=> 358
            level=> 6
        )
)
如果4在前面排序为4,5,6就都取,
$arr = Array
(
 4=> Array
        (
            id => 354
            level => 4
        )
    5 => Array
        (
            id => 353
            level => 5
        )
    6 => Array
        (
            id=> 358
            level=> 6
        )
)
以上如果有4,5,6,7,8,9多个的话改如何优化呢?
------解决思路----------------------
排序为 6,4,5就只取 6(可认为取第一个或最后一个)
排序为5,4,6 就只取5,6两个(这又是取两端了)
排序为4,5,6就都取(规则又变了)
像你这样多变的规则,是无法写程序的

你也没有给出代码,优化更无从说起了
------解决思路----------------------
看了下,你这个唯一的规则就是,按照第一条数据的key,往上取值

5,4,6  第一个是5 ,取比5 大的(包含5),就是 5,6
4,5,6  第一个是4 ,取比4 大的(包含4),就是 4,5,6
 
那你在循环的时候,记录第一条数据的key值,每次都判断key是否大于第一个值,大于就记录
这样你就不需要管他,是7,8,9还是更多的数据

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn