一一显示同一列中的两个不同值

问题描述 投票:0回答:1

如何从同一列中一一显示两个不同的值 php 代码

数据库

姓名 类型
芒果 水果
苹果 水果
玫瑰
荷花
茉莉花
香蕉 水果

输出展示

结果显示一果一花nam
芒果
玫瑰
苹果
荷花
香蕉
茉莉花

一果一花一一显示

php database mysqli
1个回答
0
投票

这是一种方法:

<?php 

$dataarray = array(
    array('name'=>'Mango', 'type'=>'Fruit'),
    array('name'=>'Apple', 'type'=>'Fruit'),
    array('name'=>'Rose', 'type'=>'Flower'),
    array('name'=>'Lotus', 'type'=>'Flower'),
    array('name'=>'Jasmine', 'type'=>'Flower'),
    array('name'=>'Banana', 'type'=>'Fruit'),
);


//seperate the array in 2 different arrays

foreach ($dataarray as $key => $value) {
    if($value['type'] == 'Fruit'){
        $fruitarray[] = $value['name'];
    }

    if($value['type'] == 'Flower'){
        $flowerarray[] = $value['name'];
    }

}

//lets create a function to make it cleaner

function oddEvenArray($array1, $array2){

    //set number of loops 

    $iterator = count($array1) + count($array2);
       
    $oddevenarray= array();

    //start the loop and make rearranged array array_shift removes the element after it has been set in oddevenarray.
    for ($i=0; $i < $iterator ; $i++) { 
        
        if($i % 2  == 0 ){
           
             $oddevenarray[] = $array1[0];
             array_shift($array1);
        }else{
             $oddevenarray[] = $array2[0];
            
             array_shift($array2);
        }

    }
    return $oddevenarray;

}


//which this function whichever array is the 1st array will be on odd position
$newarray = oddEvenArray($fruitarray,$flowerarray);



echo "<pre>";
print_r($newarray);
echo "</pre>";


?>

结果:

Array
(
    [0] => Mango
    [1] => Rose
    [2] => Apple
    [3] => Lotus
    [4] => Banana
    [5] => Jasmine
)
© www.soinside.com 2019 - 2024. All rights reserved.