1.搜索二维数组中是否存在某个值
/***
* @desc: 搜索二维数组中是否存在某个值
* @param $array
* @param $str
* @return bool
*/
function arrayCheck($array,$str)
{
$arrayList = array_column($str, $array);
if (in_array($array,$arrayList)) {
return true;
}
return false;
}
2.二维数组去掉重复值
function arrayUniqueFb($array2D){
$temp = array();
foreach ($array2D as $v){
$v=join(',',$v);//降维,也可以用implode,将一维数组转换为用逗号连接的字符串
$temp[]=$v;
}
$temp=array_unique($temp);//去掉重复的字符串,也就是重复的一维数组
foreach ($temp as $k => $v){
$temp[$k]=explode(',',$v);//再将拆开的数组重新组装
}
return $temp;
}
3.去除二维数组中的重复项
function removeArrayDuplicate($array){
$result=array();
for($i=0;$i<count($array);$i++){
$source=$array[$i];
if(array_search($source,$array)==$i && $source<>"" ){
$result[]=$source;
}
}
return $result;
}
4.二维数组根据字段进行排序
function arraySequence($array, $field, $sort = 'SORT_DESC')
{
$arrSort = array();
foreach ($array as $uniqid => $row) {
foreach ($row as $key => $value) {
$arrSort[$key][$uniqid] = $value;
}
}
array_multisort($arrSort[$field], constant($sort), $array);
return $array;
}
5.数组转xml
function arrayToXml($arr, $level = 1) {
$s = $level == 1 ? "<xml>" : '';
foreach ($arr as $tagname => $value) {
//元素为数组或者不为数组的处理
if (!is_array($value)) {
$s .= "<{$tagname}>" . (!is_numeric($value) ? '<![CDATA[' : '') . $value . (!is_numeric($value) ? ']]>' : '') . "</{$tagname}>";
} else {
$s .= "<{$tagname}>" . array2xml($value, $level + 1) . "</{$tagname}>";
}
}
//过滤不合法的字符串
$s = preg_replace("/([\x01-\x08\x0b-\x0c\x0e-\x1f])+/", ' ', $s);
return $level == 1 ? $s . "</xml>" : $s;
}
6.多维数组转化为一维数组
function arrayMulti2single($array)
{
static $result_array = array();
foreach ($array as $value) {
if (is_array($value)) {
$this->arrayMulti2single($value);
} else
$result_array [] = $value;
}
return $result_array;
}
7.对象转数组,数组转对象
function object_array($array) {
if(is_object($array)) {
$array = (array)$array;
} if(is_array($array)) {
foreach($array as $key => $value) {
$array[$key] = $this->object_array($value);
}
}
return $array;
}