标签归档:PHP

去除php数组中,重复的值

一维数组的重复项

      使用array_unique函数即可,使用实例如下:

              <?php
                  $aa=array(“chengxusheji”,”banana”,”pear”,”chengxusheji”,”wail”,”watermalon”);
                  $bb=array_unique($aa);
                  print_r($bb);
               ?>

      结果如下:Array ( [0] => chengxusheji [1] => banana [2] => pear [4] => wail [5] => watermalon ) 。

二维数组的重复项

     对于二维数组咱们分两种情况讨论,一种是因为某一键名的值不能重复,删除重复项;另一种因为内部的一维数组不能完全相同,而删除重复项,下面举例说明:

           ㈠因为某一键名的值不能重复,删除重复项

          <?php
           function assoc_unique($arr, $key)
            {
              $tmp_arr = array();
              foreach($arr as $k => $v)
             {
                if(in_array($v[$key], $tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
               {
                  unset($arr[$k]);
               }
             else {
                 $tmp_arr[] = $v[$key];
               }
             }
           sort($arr); //sort函数对数组进行排序
           return $arr;
           }

           $aa = array(
           array(‘id’ => 123, ‘name’ => ‘张三’),
           array(‘id’ => 123, ‘name’ => ‘李四’),
           array(‘id’ => 124, ‘name’ => ‘王五’),
           array(‘id’ => 125, ‘name’ => ‘赵六’),
           array(‘id’ => 126, ‘name’ => ‘赵六’)
           );
           $key = ‘id’;
           assoc_unique(&$aa, $key);
           print_r($aa);
           ?>

     显示结果为:Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 ) [3] => Array ( [id] => 126 [name] => 赵六 ) )

       ㈡因内部的一维数组不能完全相同,而删除重复项

           <?php
           function array_unique_fb($array2D){
                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;
           }

           $aa = array(
           array(‘id’ => 123, ‘name’ => ‘张三’),
           array(‘id’ => 123, ‘name’ => ‘李四’),
           array(‘id’ => 124, ‘name’ => ‘王五’),
           array(‘id’ => 123, ‘name’ => ‘李四’),
           array(‘id’ => 126, ‘name’ => ‘赵六’)
           );
           $bb=array_unique_fb($aa);
           print_r($bb)
           ?>

         显示结果:Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] => 126 [1] => 赵六 ) ) 

随机取出一维数组中的N个元素 PHP

<?php

	$testArr = range(a, z);

	#######  the first method  

	$newArr = arrayRand($testArr);

	var_dump($newArr);

	function arrayRand($arr, $num = 3) {
		$arr1 = array_rand($arr, $num);

		$newArr = array();

		foreach ($arr1 as $key => $value) {
			$newArr[] = $arr[$value];
		}

		return $newArr;
	}
	echo "\n";


	######  the second method

	$arr2 = arrayRandom($testArr);

	var_dump($arr2);



	function arrayRandom($arr, $num = 3) {
		shuffle($arr);

		// list($a, $b, $c) = $arr;

		$newArr = array();

		for ($i = 0; $i < $num; $i++) {
			$newArr[] = $arr[$i];
		}

		return $newArr;
	}



	###### the third method    getting random value from assoc arrays

	$testArr = array(
		'a' => 'siyuantlw',
		'b' => 'chengxusheji',
		'c' => 'redisfans',
		'd' => 'phpzl',
		'e' => 'yemiansheji'
	);

	echo "\n";

	$newArr = assocArrayRandom($testArr);

	var_dump($newArr);

	function assocArrayRandom($arr, $num = 2) {
		$keyArr = array_keys($arr);

		shuffle($keyArr);

		$newArr = array();

		for ($i = 0; $i < $num; $i++) {
			$newArr[$keyArr[$i]] = $arr[$keyArr[$i]];
		}

		return $newArr;
	}

?>

利用SimpleXML 函数 生成XML文件

直接贴例子

 */

$data = array(
	array('ID' => 1, 'Title' => '程序设计', 'Desc' => '编程珠玑', 'Url' => 'Http://www.chengxusheji.com'),
	array('ID' => 2, 'Title' => 'Redisfans', 'Desc' => 'Redis爱好者', 'Url' => 'Http://www.redisfans.com'),
	array('ID' => 3, 'Title' => 'PHP之路', 'Desc' => 'PHP学习之路', 'Url' => 'Http://www.phpzl.com')	
);

$xmlString =<<<XML
<?xml version='1.0' encoding='utf-8'?>
<document>
</document>
XML;

$xml = simplexml_load_string($xmlString);

$xml->addChild('webSite', 'http://www.chengxusheji.com');//给 SimpleXML 元素添加一个子元素。
$xml->addChild('webMaster', '40285090@qq.com');
$xml->addChild('updatePeri', '10000');

//元素属性数组
$attributeArray = array(
    'Title' => array(
    'author' => 'siyuantlw'
    )
);

foreach($data as $key => $value) {

	$item = $xml->addChild('item');

	foreach ($value as $k => $val) {
		$node = $item->addChild($k, $val);

		if(isset($attributeArray[$k]) && is_array($attributeArray[$k])) {
			foreach ($attributeArray[$k] as $aKey => $aVal) {
				$node->addAttribute($aKey, $aVal);//给 SimpleXML 元素添加一个属性
			}
		}
	}
}

//输出
header("Content-type: text/xml");
echo $xml->asXml();//从 SimpleXML 元素获取 XML 字符串

//保存文件
//$xml->asXml("filepath/video.xml");

去下例子吧,wp编辑器过滤掉好多东西~
例子文件下载:http://pan.baidu.com/s/1c0jAsgg
提取密码:9j1i