如何从PHP数组中删除元素

4

我通过mysql查询得到了该数组,然后需要在条件语句之后从该数组中移除一些数据。

 `array(5) { [0]=> array(13) 
{
 ["emp_name"]=> string(14) "Yasitha Perera"
 ["emp_applied_date"]=> string(10) "2013 11 27"
 ["emp_applied_time"]=> string(8) "12:12 pm" 
 ["hod_apprvd_time"]=> string(0) "" 
["hr_apprvd_time"]=> string(0) "" 
["emp_pending_on"]=> string(6) "BR/Hod" 
["emp_status"]=> string(0) "" 
["Br_no"]=> string(3) "001" 
["Br_name"]=> string(23) "1st Colombo City Branch"
 ["Contact_no"]=> string(23) "1st Colombo City Branch" 
["user_name"]=> string(3) "br1" 
["Hd_working_day"]=> string(1) "0" 
["Department"]=> string(2) "br" 
} 
[1]=> array(13) {

 ["emp_name"]=> string(14) "Yasitha Perera"
 ["emp_applied_date"]=> string(10) "2013 11 27" 
["emp_applied_time"]=> string(8) "12:12 pm"
 ["hod_apprvd_time"]=> string(0) "" 
["hr_apprvd_time"]=> string(0) "" 
["emp_pending_on"]=> string(6) "BR/Hod" 
["emp_status"]=> string(0) "" 
["Br_no"]=> string(3) "002" 
["Br_name"]=> string(18) "002-Baththaramulla" 
["Contact_no"]=> string(3) "br2" 
["user_name"]=> string(3) "br2"
 ["Hd_working_day"]=> string(1) "1"
 ["Department"]=> string(2) "br" } 
[2]=> array(13) { ["emp_name"]=> string(12) "emp_rols_abt"
 ["emp_applied_date"]=> string(10) "2013 12 13" 
["emp_applied_time"]=> string(8) "01:24 pm" 
["hod_apprvd_time"]=> string(8) "12:49 pm" 
["hr_apprvd_time"]=> string(8) "04:01 pm"
["emp_pending_on"]=> string(1) "-" 
["emp_status"]=> string(0) ""
 ["Br_no"]=> string(2) "hr" 
["Br_name"]=> string(7) "HR Dep." 
["Contact_no"]=> string(2) "hr" 
["user_name"]=> string(3) "hr1" 
["Hd_working_day"]=> string(1) "1"
["Department"]=> string(2) "hr" } 
[3]=> array(13) { 

["emp_name"]=> string(7) "my test"
 ["emp_applied_date"]=> string(10) "2013 12 13"
 ["emp_applied_time"]=> string(8) "01:27 pm"
 ["hod_apprvd_time"]=> string(0) ""
 ["hr_apprvd_time"]=> string(0) "" 
["emp_pending_on"]=> string(6) "BR/Hod" 
["emp_status"]=> string(0) "" 
["Br_no"]=> string(4) "icbs" 
["Br_name"]=> string(9) "ICBS Dep." 
["Contact_no"]=> string(5) "icbs1"
 ["user_name"]=> string(5) "icbs1" 
["Hd_working_day"]=> string(1) "1" 
["Department"]=> string(4) "icbs" }

[4]=> array(13) { ["emp_name"]=> string(3) "tae"
 ["emp_applied_date"]=> string(10) "2013 12 31"
["emp_applied_time"]=> string(8) "12:42 pm" 
["hod_apprvd_time"]=> string(0) "" 
["hr_apprvd_time"]=> string(0) "" 
["emp_pending_on"]=> string(6) "BR/Hod"
["emp_status"]=> string(0) "" 
["Br_no"]=> string(2) "it"
 ["Br_name"]=> string(7) "IT Dep." 
["Contact_no"]=> string(3) "it1"
["user_name"]=> string(3) "it1"
["Hd_working_day"]=> string(1) "0" 
["Department"]=> string(2) "it" } }

我的条件是:
foreach ($data as $row){
      if($row['Department']=='br'){
          if($row['Br_no']!== $row['emp_servicing_bnk']){

              //here i need to remove the things that not acceptable by this condition.
// but i don't know how to remove it from the array.

          }
      }

  }

1
请使用 echo "<pre/>"; 来显示数组。 - Mahmood Rehman
@AttilaBujáki - 它没有解决我的问题。 - Yasitha
3个回答

4
为了更清晰的代码,请使用array_filter函数。http://fr2.php.net/array_filter
$result = array_filter($result, function($row) {
    return $row['Department'] != 'br' || $row['Br_no'] === $row['emp_servicing_bnk'];
});

谢谢您,Eloims先生。这个很好用。 - Yasitha

3
您可以使用unset()函数来删除数组中特定的键:
foreach ($data as $key => $row) {
    if (/* your condition*/) {
        unset($data[$key]);
    }
}

1

在php中使用unset,类似以下代码:

unset($row['emp_servicing_bnk'])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接