php數組篩選
『壹』 php數組如何按條件查詢
演算法如novice_pegasus的,但是完整一些該是:
foreach($array as $each){
if($each<10){//小於10的歸集一個數組
$newarray[0][] = $each;
}elseif($each>=10 && $each<20){//10到20之間的歸集一個數組
$newarray[1][] = $each;
}
else//大於20的歸集一個數組
$newarray[2][] = $each;
}
print_r($newarray);
『貳』 php,請問對已知二維數組,根據某個欄位添加條件篩選怎麼做
第一個方法:新建一個空的數組,再循環該數組,如果distance<10000,就壓入新建的數組中。
第二個方法:使用array_filter()方法,
<?php
$array=array(
array('id'=>1,'distance'=>131),
array('id'=>2,'distance'=>13100),
array('id'=>3,'distance'=>13231),
);
functionfilterDistance($arr)
{
return($arr['distance']<10000);
}
$array=array_filter($array,"filterDistance");
var_mp($array);
?>
『叄』 php數組篩選問題
<?php
$res=array (
0 => array('id' =>'76',
'title' =>'gf',
'type' =>'4' ,
'update_time' =>'1433814812',
'status' =>'1' ,
'view' =>'0',
'category_id' =>'2' ,
'model_id' =>'2',
'pid' =>'0'),
1 => array('id' =>'75',
'title' =>'騎士妙招破死局' ,
'type' =>'1',
'update_time' =>'1433758503',
'status' =>'1' ,
'view' =>'0' ,
'category_id' =>'2',
'model_id' =>'2',
'pid' =>'0'),
2 =>array('id' =>'74',
'title' =>'職場新人要學會的4件事',
'type' =>'5',
'update_time' =>'1433757936',
'status' =>'1',
'view' =>'0',
'category_id' =>'2',
'model_id' =>'2',
'pid' =>'0'),
3 =>array('id' =>'73',
'title' =>'職場新人該如何看待繁瑣的工作',
'type' =>'5',
'update_time' =>'1433757902',
'status' =>'0',
'view' =>'0',
'category_id' =>'2',
'model_id' =>'2',
'pid' =>'0'));
$tot=count($res);
for($i=0;$i<$tot;$i++)
{
if($res[$i]['type']=='5')
{
foreach($res[$i] as $a)
{
echo("<div>".$a."</div>");
}
}
}
?>
『肆』 請教如何在PHP多維數組中篩選出自己想要的數值並輸出
$ar = Array(
Array (
'log_data' => 4,
'log_result' => 0,
'log_time' => '2013-05-08 10:08:40'
),
Array (
'log_data' => 10018,
'log_result' => 2,
'log_time' => '2013-05-08 10:13:58',
),
Array (
'log_data' => 10018,
'log_result' => 2,
'log_time' => '2013-05-08 10:14:02',
),
Array (
'log_data' => 10003,
'log_result' => 50,
'log_time' => '2013-05-08 10:18:29',
),
);
foreach($ar as $item) {
@$res[$item['log_data']][strtok($item['log_time'], ' ')] += $item['log_result'];
}
print_r($res);
『伍』 php 根據某一元素值進行數組篩選
<?php
functionfilter($elem){
return$elem['type']=='空調';
}
$arr=Array(
Array('id'=>1,'type'=>'空調'),
Array('id'=>2,'type'=>'電視機'),
Array('id'=>3,'type'=>'空調')
);
$newarr=array_filter($arr,'filter');
print_r($newarr);
exit;
『陸』 PHP 對象數組的篩選和判斷
手打不易,有用請採納。
$rArray = json_decode(json_encode($r),true);//通過json將對象轉換為數組。
foreach($rArray as $k => $v){
if($v['banji']==1){ //如果banji=1則求語文成績
echo "語文成績={$v['yuwen']}";
}elseif($v['banji']==2){ //如果banji=2則求數學成績
echo "語文成績={$v['shuxue']}";
}
if($v['xingming']=='x'){ //有一個姓名為$x是否在banji1
if($v['banji']==1){
echo "xingmign為x的是班級1";
}else{
echo "xingmign為x的不是班級1";
}
}
}
『柒』 php關於數組中取出符合條件的值辦法
<?php
$arr=array('');
foreach($arras$k=>$v){
if($v>0&&$v<100){
$arr1[]=$v;
}elseif($v>100&&$v<200){
$arr2[]=$v;
}
}
『捌』 php 一個多維數組根據一維數組篩選數據,得到新數組
<?php
$a=array(
'BL001'=>array('A14257','B17548'),
'CDF002'=>array('A14257','C48751'),
'FGE453'=>array('DF5533','GR6445','GH5544'),
'GEN001'=>array('NT7532','DE9342','C48751'),
);
$b=array('A14257','E453T4','Y64344','FG4809','C48751','H4443R');
foreach($aas$k=>$v){
$t=array_intersect($v,$b);
if($t){
$c[$k]=$t;
}
}
print_r($c);
?>
『玖』 php 二維數組篩選問題
<?php
$arr = array(
array('id'=>'1','姓名'=>'小白','性別'=>'男','班級'=>'1','總分'=>75),
array('id'=>'2','姓名'=>'小黑','性別'=>'男','班級'=>'1','總分'=>76),
array('id'=>'3','姓名'=>'小明','性別'=>'女','班級'=>'1','總分'=>77),
array('id'=>'4','姓名'=>'小光','性別'=>'女','班級'=>'1','總分'=>80),
array('id'=>'5','姓名'=>'小草','性別'=>'女','班級'=>'1','總分'=>82),
array('id'=>'6','姓名'=>'小麗','性別'=>'男','班級'=>'1','總分'=>90),
array('id'=>'7','姓名'=>'小紅','性別'=>'男','班級'=>'1','總分'=>90),
array('id'=>'8','姓名'=>'小藍','性別'=>'男','班級'=>'1','總分'=>84)
);
//第一次遍歷數組篩出男性
//用到循環函數、數組函數:foreach、array_push
$manArr = array();//定義個空數組,一會裝男性數據
$topScore = 0;//定義個最高總分,一會在遍歷過程順便獲取最高分
foreach($arr as $v){
if($v['性別']=='男'){
//對符合男生條件的數組進行記錄
array_push($manArr,$v);//把符合男性條件的數組裝進剛定義的空數組
//記錄男生最高分的分數
if($v['總分']>$topScore){
$topScore = $v['總分'];
}
}
}
//所以現在$manArr就是所有男性了,array('小白'=>75,...)
//接下來是求出總分最高的,繼續用循環的方式取出成績等於最高分數的
foreach($manArr as $v){
if($v['總分']==$topScore){
echo $v['姓名'] . "\r\n";
}
}
『拾』 php中過濾數組中的某個值
<?php
$bb=array('a');
$aa=array('a','b','c','d','e','f');
$cc=array_diff($aa,$bb);
print_r($cc);
?>
array_diff 返回2個數組的差集,數組元素多的放前面