十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
先将所有数据放到一个数组里
10年积累的网站设计制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有库伦免费网站建设让你可以放心的选择与我们合作。
$arr_new_str =Array();//放字符串的数组
$arr_new_obj = Array();//放对象的数组
foreach( $arr_old as $arr_in ){
foreach( $arr_in as $value){
//双重遍历,开始 将字符串和对象分开
if( $value instanceof stdClass )
{ //所有对象
$arr_new_obj[] =$value;
}else {//所有字符串
$arr_new_str[]=$value;
}
}
}
//array_unique()函数,我不清楚能不能排除对象,所以我又分了一次
$arr_new= array_unique( $arr_new_str );
//验证对象
$count = count( $arr_new_obj);
for( $i=0;$i$count;$i++){
//得到对象数组的第一个值,
for($j=$i+1;$j$count;$j++){
//将第一个对象和其他值比较,
if( $arr_new_obj[ i ] == $arr_new_obj[ j ] ){
//相等,就将第一个删除;依次类推
unset( $arr_new_obj[ i ] );
}
}
}
//最后得到的就是没有相同对象的新数组
//和并两个数组;
$array_new = array_merge( $arr_new ,$arr_new_obj );
//array_merge() 函数把两个或多个数组合并为一个数组。
//如果键名有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。如果数组是数
//字索引的,则键名会以连续方式重新索引。
这个题,我认为 难在如何判断两个对象是否相等,我也是,百度了一下,才知道的,请楼主也学习一下;
我的方法比较长,我看一楼 用到的 递归,水准比我高多了,学习了
在利用jQuery EasyUI框架进行程序开发时,碰到前台将JSON格式数据传递到服务器后台,经php的json_decode函数转换成的数组由于为对象数组,php程序无法对数据进行正常处理的情况,为此需要开发一个PHP回调函数(objarray_to_array)将对象数组转换成普通数组。
/**
* 对象数组转为普通数组
*
* AJAX提交到后台的JSON字串经decode解码后为一个对象数组,
* 为此必须转为普通数组后才能进行后续处理,
* 此函数支持多维数组处理。
*
* @param array
* @return array
*/
function objarray_to_array($obj) {
$ret = array();
foreach ($obj as $key = $value) {
if (gettype($value) == "array" || gettype($value) == "object"){
$ret[$key] = objarray_to_array($value);
}else{
$ret[$key] = $value;
}
}
return $ret;
}
这里定义2个php匿名对象和数组相互转换的函数,代码如下:
function array2object($array) {
if (is_array($array)) { $obj = new StdClass(); foreach ($array as $key = $val){ $obj-$key = $val; } } else { $obj = $array; } return $obj;}function object2array($object) { if (is_object($object)) { foreach ($object as $key = $value) { $array[$key] = $value; } } else { $array = $object; } return $array;}
用法示例如下:
$array = array('foo' = 'bar','one' = 'two','three' = 'four');$obj = array2object($array);print $obj-one; // output's "two"$arr = object2array($obj);print $arr['foo']; // output's bar
需要准备的材料分别是:电脑、php编辑器、浏览器。
1、首先,打开php编辑器,新建php文件,例如:index.php,填充问题基础代码。
2、在index.php中,输入代码:echo json_encode($a);。
3、浏览器运行index.php页面,此时A对象被转化为字符串后被打印出来了。