note 74757 deleted from function.array-merge by nlopess
| From: | nlopess@php.net | Date: | Tue, 01 May 2007 13:49:39 +0000 |
| Subject: | note 74757 deleted from function.array-merge by nlopess | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-126072@lists.php.net to get a copy of this message | ||
Note Submitter: Halit YEÅİL mail at halityesil dot com
----
Multi Array in single array function and array to string function...
<?PHP
/*
* code by Halit YEÅİL
* http://www.halityesil.com , http://www.trteknik.org , http://www.mysqlturkiye.com , http://www.trwhois.com/php.net
*
*/
/*
* Verilen diziyi sonuca string olarak düzenlenmiŠhalde verir
*
* @param array a
* @param int level
* @return string
*/
function array2string($a, $level = 0){
//EÄer dizi deÄilse direkt sonuca aktar
if(!is_array($a)) return $a;
//Satır sonlarını ayarla
$ln = "\r\n";
//Level boyunca boÅluk oluÅtur girinti
$l = return2space($level*11);
//Array elementi için girinti yap
$e = return2space(6);
//Array adını belirle
$o = 'Array('.$ln;
//iç girintiyi ayarla
$x = $l.$e;
//Diziyi döngüye al
foreach($a as $k=>$v){
//Sonucu stringe ekle ve iÅlemi tekrarlat
$o .= $x.'[ '.$k.' ]=> '. array2string($v, $level+1) . $ln;
}
//Diziyi sonlandır
$o .= $l.')';
//Sonucu çevir
return $o;
}
/*
*
* Verilen deÄer kadar html olarak boÅluk çevirir ascii
*
* @param int s
* @return string
*/
function return2space($s){ $l = ''; for($i=0; $i<$s; $i++) $l
.=' '; return $l; }
$a = Array (
'deneme',
arr1=>array(
array(
'value1',
variable=>'values2',
544545
),
'values3',
5456,
array(
testk=>array(ka=>546, 'asdsada'),
45644564
),
'assdasda'
),
arr2=>array(
array(
'value4',
variable=>'values5',
544545
),
'values6',
5456,
array(
testk=>array(ka=>546, 'asdsada'),
45644564
),
'assdasda'
),
'asdsadsada',
544556
);
function m2sarray($a, $s = '_', $p = false){
if(!is_array($a)) return array();
$out = array();
$pre = ($p && $p != '')?$p.$s:'';
foreach($a AS $k => $v){
$pkey = $pre.((is_int($k) && $pre == '')?$s.$k:$k);
if(!is_array($v))
$out[$pkey] = $v;
else{
$na = m2sarray($v, $s, $pkey);
if(is_array($na)) $out = $out + $na;
}
}
return $out;
}
echo '<pre>';
echo nl2br(array2string($a));
echo '<hr>';
echo nl2br(array2string(m2sarray($a, '.')));
echo '<hr>';
echo '</pre>';
?>