㈠ php 數組索引鍵值對 怎麼轉xml
php數組轉換xml有好幾種方法,這里演示最簡單的一種:拼接xml格式數據。如果是多維數組需要另行處理,但套路基本一致。示例如下:
//測試
$arr=array(
"name"=>"網路",
"url"=>""
);
echoarrayToXml($arr);
/*轉換結果
*<?xmlversion="1.0"encoding="utf-8"?>
*<name>網路</name>
*<url></url>
*</xml>
*/
//array轉換成xml格式函數
functionarrayToXml($arr){
$xml="<?xmlversion="1.0"encoding="utf-8"?>";
foreach($arras$key=>$val){
$xml.="<".$key.">".$val."</".$key.">";
}
$xml.="</xml>";
return$xml;
}
㈡ php一個二維數組怎樣轉為多個一個的數組
PHP 中的 array_merge_recursive() 函數可以實現
將一個或多個數組的元素的合並起來,一個數組中的值附加在前一個數組的後面。並返回作為結果的數組。
當有重復的鍵名時,值不會被覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。
array_merge_recursive(array1,array2,array3...)
參數說明
array1 必需。輸入的第一個數組。
array2 必需。輸入的第二個數組。
array3 可選。可指定的多個輸入數組。
例如:
<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge_recursive($a1,$a2));
?>
輸出:
Array (
[a] => Horse
[b] => Array ( [0] => Dog [1] => Cat )
[c] => Cow
)
註:array_merge() 函數也可以實現,與 array_merge_recursive()函數不同是,如果鍵名有重復,該鍵的鍵值為最後一個鍵名對應的值(後面的覆蓋前面的)。如果數組是數字索引的,則鍵名會以連續方式重新索引。
㈢ PHP 數組轉換
使用PHP implode 函數:將數組元素組合為字元串。實現代碼如下:
㈣ PHP中一維索引數組轉二維關聯數組
$u_id=2;
$a_id=array(2,3,4);
$arr=array_map(function($v){
global$u_id;
returnarray("u_id"=>$u_id,"a_id"=>$v);
},$a_id);
print_r($arr);
㈤ php怎麼將數組數組轉化為json格式的數據
一、json_encode()
[php]view plain
<?php
$arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
echojson_encode($arr);
?>
輸出
[php]view plain
{"a":1,"b":2,"c":3,"d":4,"e":5}
再看一個對象轉換的例子:
[php]view plain
$obj->body='anotherpost';
$obj->id=21;
$obj->approved=true;
$obj->favorite_count=1;
$obj->status=NULL;
echojson_encode($obj);
輸出
[php]view plain
{
"body":"anotherpost",
"id":21,
"approved":true,
"favorite_count":1,
"status":null
}
二、索引數組和關聯數組
PHP支持兩種數組,一種是只保存"值"(value)的索引數組(indexed array),另一種是保存"名值對"(name/value)的關聯數組(associative array)。
由於javascript不支持關聯數組,所以json_encode()只將索引數組(indexed array)轉為數組格式,而將關聯數組(associative array)轉為對象格式。
㈥ php 數組索引值如何重新從0開始遞增
對於索引數組,php還有提供了另外一個內置函數,能夠重置數組索引array_merge($arr),當array_merge()只傳入一個參數且鍵名是整數,返回該數組,其鍵名以0開始進行重新索引。
其中PHP中的數組實際上是一個有序映射。映射是一種把values關聯到keys的類型。換言之,數組是特殊的變數,可以同時保存一個以上的值。
在PHP中數組類型有三種:索引數組(帶有數字索引的數組),關聯數組(帶有指定鍵的數組),多維數組(包含一個或多個數組的數組)。
(6)php數組索引轉換擴展閱讀:
注意事項:
1、兩個相同的索引數組,同時執行,後面的會把前面的覆蓋掉。
2、在php中 索引數組的下標可以不連續。
3、如果兩個下標是空會自動增加。
4、數組的自動增長下標,默認是從0開始的,自動增長的都是出現過的最大值加1。
5、關聯數組不會影響到索引數組的排序規則,就算是索引數組是負數 也不會影響,最大值+1。
㈦ 改變數組在PHP中的索引問題,怎麼解決
類似於重置數組信息,這個可以使用php的一個內置函數array_values();
例如:
<?php $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse"); print_r(array_values($a)); // 輸出: // Array ( [0] => Cat [1] => Dog [2] => Horse )?>
㈧ PHP重置數組為連續數字索引的幾種方式
PHP重置數組為連續數字索引的幾種方式
比如這樣的一個php數組:
[php]view plain
$arr=array(
1=>'apple',
3=>'banana',
5=>'orange'
);
想要轉換為這樣的數組:
[php]view plain
$arr=array(
0=>'apple',
1=>'banana',
2=>'orange'
);
1、推薦的方式 array_values 方法
這樣方式無論對普通數組還是關聯數組都適用
[php]view plain
<?php
$arr=array(
1=>'apple',
3=>'banana',
5=>'orange'
);
print_r(array_values($arr));
$arr1=array(
'name'=>'jerry',
'age'=>16,
'height'=>'18cm'
);
print_r(array_values($arr1));
輸出結果:
[sql]view plain
[root@localhostphp]#phparray.php
Array
(
[0]=>apple
[1]=>banana
[2]=>orange
)
Array
(
[0]=>jerry
[1]=>16
[2]=>18cm
)
2、使用 array_merge 方法
該方法如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。所以只能適用於數字索引。
[php]view plain
<?php
$arr=array(
1=>'apple',
3=>'banana',
5=>'orange'
);
print_r(array_merge($arr));
$arr1=array(
'name'=>'jerry',
'age'=>16,
'height'=>'18cm'
);
print_r(array_merge($arr1));
輸出結果:
[php]view plain
[root@localhostphp]#phparray.php
Array
(
[0]=>apple
[1]=>banana
[2]=>orange
)
Array
(
[name]=>jerry
[age]=>16
[height]=>18cm
)
3、循環遍歷
最原始的方式,臃腫且不夠優雅,極力抵制。
[php]view plain
<?php
functionresetArr($arr){
$temp=array();
foreach($arras$v){
$temp[]=$v;
}
return$temp;
}
$arr=array(
1=>'apple',
3=>'banana',
5=>'orange'
);
print_r(resetArr($arr));
$arr1=array(
'name'=>'jerry',
'age'=>16,
'height'=>'18cm'
);
print_r(resetArr($arr1));
That『s it!
㈨ php如何將資料庫查詢統計出來的數據,轉換成為自己想要的格式數組
我也很就糾結這個問題,現在我是這樣做的
$res = mysqli_query ($sql, "select BCur from microvast where id between 1 and 50");
foreach($res as $x=>$x_value) {
foreach($x_value as $k=>$v) {
$data[] = $v;
}
這樣可以$data[]生成了『BCur』一列的一個索引數組,但是執行效率不高,多列就要做多次查詢,期待更好的方法。
while ($row=mysqli_fetch_assoc($res)){
$id=$row["id"];
......
echo $id;
}
這個辦法只能列印出來
㈩ php怎麼把關聯數組轉成索引數組
PHP和PERL、VB不同,其只有「數組」,沒有單獨的「關聯數組」類型,實際上PHP的所有數組都是關聯數組,當沒有指定鍵值的時候,鍵值為0、1、2……
php中定義數組的方法:
PHP定義數組的格式
數組名=array();
如:$aa=array();//這樣就定義了一個數組,
之後給元素賦值:
$aa[0]="9016";
$aa[1]="9017";
$aa[2]="9018";
PHP輸出數組的方法:
foreach($aa as $val)
{echo$val;}
也可以在定義數組時直接賦值
$aa=array(0=>"9016",1=>"9017";2=>"9018");
PHP的數組還可以用字元做下標,不一定要數字.
$aa["name"]="Joan";
$aa["num"]="9018";
$aa["email"]="[email protected]";
也可以這樣
$aa=array("name"=>"joan","num"=>"9018","email"=>"[email protected]");
將一個一維數組的元素也定義為數組,就是一個二維數組,
$aa=array(0=>"a1",1=>"a2");
$bb=array(0=>"b1",1=>"b2");
$cc=array(0=>$aa;1=>$bb);此時,$cc[0]也是一個數組,$cc[1]也是一個數組,$cc就是一個二維數組。
同理,三維,四維數組也可以繼續定義下去。
數組的元素不僅於數字和字元串,可以是類的對象。