如何从同一列中一一显示两个不同的值 php 代码
数据库
姓名 | 类型 |
---|---|
芒果 | 水果 |
苹果 | 水果 |
玫瑰 | 花 |
荷花 | 花 |
茉莉花 | 花 |
香蕉 | 水果 |
输出展示
结果显示一果一花nam |
---|
芒果 |
玫瑰 |
苹果 |
荷花 |
香蕉 |
茉莉花 |
一果一花一一显示
这是一种方法:
<?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
)