php數組翻轉
1. php數組中,如何查詢所有等於指定值得元素下標
array array_flip ( array trans)
將trans中的所有元素變為下標,對應的原先的key(下標)變為值
適用於關聯數組(索引數組沒測試過)
比如
$a = array(
'name'=>'ansuir',
'pet'=>'cat'
);
經過轉換後得到的新數組
$b = array_flip($a);
/*
$b=array(
'ansuir'=>'name',
'cat'=>'pet'
);
*/
這樣,就可以通過$b['ansuir'] 得到 'name'了,也就是原先在$a 中的對應下標
這個函數多用於去重數組值,兩次翻轉之後可以將重復的數組元素去除
2. php用遞歸函數反轉數組
這個問題,簡單,首先問樓主一個問題,如果說其中沒有一個數組的話反轉你應該會寫對吧,其實這個裡面有個數組就是再次調用一次本身函數就好,這就是所謂的遞歸,代碼如下:
$arr=array("1","2","3","php",array("4","5","6"));
functionarray_rev($arr){
for($i=count($arr)-1;$i>=0;$i--){
if(is_array($arr[$i])){//這里判斷是否為數組
$temp1=array_rev($arr[$i]);//若為數組則開始調用自身
$temp[]=$temp1;
continue;
}
$temp[]=$arr[$i];
}
return$temp;
}
var_mp(array_rev($arr));
3. 如何運用PHP函數array
PHP Array函數是PHP 核心的組成部分。無需安裝即可使用這些函數。
array()
創建數組。
array_change_key_case()
返回其鍵均為大寫或小寫的數組。
array_chunk()
把一個數組分割為新的數組塊。
array_column()
返回輸入數組中某個單一列的值。
array_combine()
通過合並兩個數組(一個為鍵名數組,一個為鍵值數組)來創建一個新數組。
array_count_values()
用於統計數組中所有值出現的次數。
array_diff()
比較數組,返回兩個數組的差集(只比較鍵值)。
array_diff_assoc()
比較數組,返回兩個數組的差集(比較鍵名和鍵值)。
array_diff_key()
比較數組,返回兩個數組的差集(只比較鍵名)。
array_diff_uassoc()
比較數組,返回兩個數組的差集(比較鍵名和鍵值,使用用戶自定義的鍵名比較函數)。
array_diff_ukey()
比較數組,返回兩個數組的差集(只比較鍵名,使用用戶自定義的鍵名比較函數)。
array_fill()
用給定的鍵值填充數組。
array_fill_keys()
用給定的指定鍵名的鍵值填充數組。
array_filter()
用回調函數過濾數組中的元素。
array_flip()
反轉/交換數組中的鍵名和對應關聯的鍵值。
array_intersect()
比較數組,返回兩個數組的交集(只比較鍵值)。
array_intersect_assoc()
比較數組,返回兩個數組的交集(比較鍵名和鍵值)。
array_intersect_key()
比較數組,返回兩個數組的交集(只比較鍵名)。
array_intersect_uassoc()
比較數組,返回兩個數組的交集(比較鍵名和鍵值,使用用戶自定義的鍵名比較函數)。
array_intersect_ukey()
比較數組,返回兩個數組的交集(只比較鍵名,使用用戶自定義的鍵名比較函數)。
array_key_exists()
檢查指定的鍵名是否存在於數組中。
array_keys()
返回數組中所有的鍵名。
array_map()
將用戶自定義函數作用到給定數組的每個值上,返回新的值。
array_merge()
把一個或多個數組合並為一個數組。
array_merge_recursive()
遞歸地把一個或多個數組合並為一個數組。
array_multisort()
對多個數組或多維數組進行排序。
array_pad()
將指定數量的帶有指定值的元素插入到數組中。
array_pop()
刪除數組中的最後一個元素(出棧)。
array_proct()
計算數組中所有值的乘積。
array_push()
將一個或多個元素插入數組的末尾(入棧)。
array_rand()
從數組中隨機選出一個或多個元素,返回鍵名。
array_rece()
通過使用用戶自定義函數,迭代地將數組簡化為一個字元串,並返回。
array_replace()
將所有被替換數組中的元素替換成第一個數組。
array_replace_recursive()
將所有被替換數組中的元素遞歸地替換成第一個數組。
array_reverse()
將原數組中的元素順序翻轉,創建新的數組並返回。
array_search()
在數組中搜索給定的值,如果成功則返回相應的鍵名。
array_shift()
刪除數組中的第一個元素,並返回被刪除元素的值。
array_slice()
返回數組中的選定部分。
array_splice()
把數組中的指定元素去掉並用其它值取代。
array_sum()
返回數組中所有值的和。
array_udiff()
比較數組,返回兩個數組的差集(只比較鍵值,使用一個用戶自定義的鍵名比較函數)。
array_udiff_assoc()
比較數組,返回兩個數組的差集(比較鍵名和鍵值,使用內建函數比較鍵名,使用用戶自定義函數比較鍵值)。
array_udiff_uassoc()
比較數組,返回兩個數組的差集(比較鍵名和鍵值,使用兩個用戶自定義的鍵名比較函數)。
array_uintersect()
比較數組,返回兩個數組的交集(只比較鍵值,使用一個用戶自定義的鍵名比較函數)。
array_uintersect_assoc()
比較數組,返回兩個數組的交集(比較鍵名和鍵值,使用內建函數比較鍵名,使用用戶自定義函數比較鍵值)。
array_uintersect_uassoc()
比較數組,返回兩個數組的交集(比較鍵名和鍵值,使用兩個用戶自定義的鍵名比較函數)。
array_unique()
刪除數組中重復的值。
array_unshift()
在數組開頭插入一個或多個元素。
array_values()
返回數組中所有的值。
array_walk()
對數組中的每個成員應用用戶函數。
array_walk_recursive()
對數組中的每個成員遞歸地應用用戶函數。
arsort()
對關聯數組按照鍵值進行降序排序。
asort()
對關聯數組按照鍵值進行升序排序。
compact()
創建一個包含變數名和它們的值的數組。
count()
返回數組中元素的數目。
current()
返回數組中的當前元素。
each()
返回數組中當前的鍵/值對。
end()
將數組的內部指針指向最後一個元素。
extract()
從數組中將變數導入到當前的符號表。
in_array()
檢查數組中是否存在指定的值。
key()
從關聯數組中取得鍵名。
krsort()
對關聯數組按照鍵名降序排序。
ksort()
對關聯數組按照鍵名升序排序。
list()
把數組中的值賦給一些數組變數。
natcasesort()
用"自然排序"演算法對數組進行不區分大小寫字母的排序。
natsort()
用"自然排序"演算法對數組排序。
next()
將數組中的內部指針向前移動一位。
pos()
current() 的別名。
prev()
將數組的內部指針倒回一位。
range()
創建一個包含指定范圍的元素的數組。
reset()
將數組的內部指針指向第一個元素。
rsort()
對數值數組進行降序排序。
shuffle()
把數組中的元素按隨機順序重新排列。
sizeof()
count() 的別名。
sort()
對數值數組進行升序排序。
uasort()
使用用戶自定義的比較函數對數組中的鍵值進行排序。
uksort()
使用用戶自定義的比較函數對數組中的鍵名進行排序。
usort()
使用用戶自定義的比較函數對數組進行排序。
Array(arglist)
作用: 創建數組並給數組賦值
arglist 參數是賦給包含在 Variant 中的數組元素的值的列表(用逗號分隔)。如果沒有指定此參數,則將會創建零長度的數組。
例:一般創建數組的方法為
Dim AA(2)
AA(0)=10
AA(1)=20
AA(2)=30
MsgBox AA(2)
如果像以上的話比較繁瑣那麼如果用array函數呢?
Dim AA
AA=Array(10,20,30)
B=AA(2)
MsgBox B
這樣的話過程就比較簡單用的時候拿出來就行了。
static Object get(Object array, int index)
返回指定數組對象中索引組件的值。
static boolean getBoolean(Object array, int index)
以 boolean 形式返回指定數組對象中索引組件的值。
static byte getByte(Object array, int index)
以 byte 形式返回指定數組對象中索引組件的值。
static char getChar(Object array, int index)
以 char 形式返回指定數組對象中索引組件的值。
static double getDouble(Object array, int index)
以 double 形式返回指定數組對象中索引組件的值。
static float getFloat(Object array, int index)
以 float 形式返回指定數組對象中索引組件的值。
static int getInt(Object array, int index)
以 int 形式返回指定數組對象中索引組件的值。
static int getLength(Object array)
以 int 形式返回指定數組對象的長度。
static long getLong(Object array, int index)
以 long 形式返回指定數組對象中索引組件的值。
static short getShort(Object array, int index)
以 short 形式返回指定數組對象中索引組件的值。
static Object newInstance(Class<?> componentType, int length)
創建一個具有指定的組件類型和長度的新數組。
static Object newInstance(Class<?> componentType, int[] dimensions)
創建一個具有指定的組件類型和維度的新數組。
static void set(Object array, int index, Object value)
將指定數組對象中索引組件的值設置為指定的新值。
static void setBoolean(Object array, int index, boolean z)
將指定數組對象中索引組件的值設置為指定的 boolean 值。
static void setByte(Object array, int index, byte b)
Array 對象用於在單個的變數中存儲多個值。
參數
參數size是期望的數組元素個數。返回的數組,length 欄位將被設為size的值。
參數element...,elementn是參數列表。當使用這些參數來調用構造函數 Array() 時,新創建的數組的元素就會被初始化為這些值。它的 length 欄位也會被設置為參數的個數。
返回值
返回新創建並被初始化了的數組。
如果調用構造函數 Array() 時沒有使用參數,那麼返回的數組為空,length 欄位為 0。
當調用構造函數時只傳遞給它一個數字參數,該構造函數將返回具有指定個數、元素為 undefined 的數組。
當其他參數調用 Array() 時,該構造函數將用參數指定的值初始化數組。
當把構造函數作為函數調用,不使用 new 運算符時,它的行為與使用 new 運算符調用它時的行為完全一樣。
4. php 三維數組轉成二維數組
<?php
$k=0;
foreach($helloas$key=>$val){
foreach($val['data']as$key2=>$val2){
$newhello[$k]['uid']=$val['uid'];
$newhello[$k]['title']=$val2['title'];
$newhello[$k]['content']=$val2['content'];
$k++;
}
}
print_r($newhello);
?>
5. PHP 二維索引數組怎麼轉化成json字元串數組
json_encode()就是將PHP數組轉換成Json
如:$array = array("name" => "Eric","age" => 23); echo json_encode($array);
程序將列印出 : {「name」:」Eric」,」age」:23}
6. PHP-Array函數簡介-數組操作-php實例教程
count()計算數組中的元素數目或對象中的屬性個數。3current()返回數組中的當前元素。3each()返回數組中當前的鍵/值對並將數組指針向前移動一步。3end()將數組的內部指針指向最後一個元素。3extract()從數組中將變數導入到當前的符號表。3in_array()檢查數組中是否存在指定的值。4key()從關聯數組中取得鍵名。3krsort()對數組按照鍵名逆向排序。3ksort()對數組按照鍵名排序。3list()把數組中的值賦給一些變數。3natcasesort()用「自然排序」演算法對數組進行不區分大小寫字母的排序。4natsort()用「自然排序」演算法對數組排序。4next()將數組中的內部指針向前移動一位。3pos()current()
的別名。3prev()將數組的內部指針倒回一位。3range()建立一個包含指定范圍的元素的數組。3reset()將數組的內部指針指向第一個元素。3rsort()對數組逆向排序。3shuffle()把數組中的元素按隨機順序重新排列。3sizeof()count()
的別名。3sort()對數組排序。3uasort()使用用戶自定義的比較函數對數組中的值進行排序並保持索引關聯。3uksort()使用用戶自定義的比較函數對數組中的鍵名進行排序。3usort()使用用戶自定義的比較函數對數組中的值進行排序。3
7. 在PHP中將數組轉換為XML格式
php數組格式:
Array to XML:
通裂瞎過使用PHP的擴展SimpleXML,我們將uses_array轉換含源仔為xml格式。
保存成功的談汪XML文件:
The users.xml file contains the following xml.
附註:
Insert XML Into Databse
If you want to save the XML into the database, then replace the $xml_file variable line with the following code line. Now you can insert $xml_file variable into the database.
8. php數組的PHP 5 Array 函數
PHP Array 函數允許您訪問並操作數組。 函數 描述 array() 創建數組。 array_change_key_case() 返回其鍵均為大寫或小寫的數組。 array_chunk() 把一個數組分割為新的數組塊。 array_column() 返回輸入數組中某個單一列的值。 array_combine() 通過合並兩個數組(一個為鍵名數組,一個為鍵值數組)來創建一個新數組。 array_count_values() 用於統計數組中所有值出現的次數。 array_diff() 比較數組,返回兩個數組的差集(只比較鍵值)。 array_diff_assoc() 比較數組,返回兩個數組的差集(比較鍵名和鍵值)。 array_diff_key() 比較數組,返回兩個數組的差集(只比較鍵名)。 array_diff_uassoc() 比較數組,返回兩個數組的差集(比較鍵名和鍵值,使用用戶自定義的鍵名比較函數)。 array_diff_ukey() 比較數組,返回兩個數組的差集(只比較鍵名,使用用戶自定義的鍵名比較函數)。 array_fill() 用給定的鍵值填充數組。 array_fill_keys() 用給定的指定鍵名的鍵值填充數組。 array_filter() 用回調函數過濾數組中的元素。 array_flip() 反轉/交換數組中的鍵名和對應關聯的鍵值。 array_intersect() 比較數組,返回兩個數組的交集(只比較鍵值)。 array_intersect_assoc() 比較數組,返回兩個數組的交集(比較鍵名和鍵值)。 array_intersect_key() 比較數組,返回兩個數組的交集(只比較鍵名)。 array_intersect_uassoc() 比較數組,返回兩個數組的交集(比較鍵名和鍵值,使用用戶自定義的鍵名比較函數)。 array_intersect_ukey() 比較數組,返回兩個數組的交集(只比較鍵名,使用用戶自定義的鍵名比較函數)。 array_key_exists() 檢查指定的鍵名是否存在於數組中。 array_keys() 返回數組中所有的鍵名。 array_map() 將用戶自定義函數作用到給定數組的每個值上,返回新的值。 array_merge() 把一個或多個數組合並為一個數組。 array_merge_recursive() 遞歸地把一個或多個數組合並為一個數組。 array_multisort() 對多個數組或多維數組進行排序。 array_pad() 將指定數量的帶有指定值的元素插入到數組中。 array_pop() 刪除數組中的最後一個元素(出棧)。 array_proct() 計算數組中所有值的乘積。 array_push() 將一個或多個元素插入數組的末尾(入棧)。 array_rand() 從數組中隨機選出一個或多個元素,返回鍵名。 array_rece() 通過使用用戶自定義函數,迭代地將數組簡化為一個字元串,並返回。 array_replace() 將所有被替換數組中的元素替換成第一個數組。 array_replace_recursive() 將所有被替換數組中的元素遞歸地替換成第一個數組。 array_reverse() 將原數組中的元素順序翻轉,創建新的數組並返回。 array_search() 在數組中搜索給定的值,如果成功則返回相應的鍵名。 array_shift() 刪除數組中的第一個元素,並返回被刪除元素的值。 array_slice() 返回數組中的選定部分。 array_splice() 把數組中的指定元素去掉並用其它值取代。 array_sum() 返回數組中所有值的和。 array_udiff() 比較數組,返回兩個數組的差集(只比較鍵值,使用一個用戶自定義的鍵名比較函數)。 array_udiff_assoc() 比較數組,返回兩個數組的差集(比較鍵名和鍵值,使用內建函數比較鍵名,使用用戶自定義函數比較鍵值)。 array_udiff_uassoc() 比較數組,返回兩個數組的差集(比較鍵名和鍵值,使用兩個用戶自定義的鍵名比較函數)。 array_uintersect() 比較數組,返回兩個數組的交集(只比較鍵值,使用一個用戶自定義的鍵名比較函數)。 array_uintersect_assoc() 比較數組,返回兩個數組的交集(比較鍵名和鍵值,使用內建函數比較鍵名,使用用戶自定義函數比較鍵值)。 array_uintersect_uassoc() 比較數組,返回兩個數組的交集(比較鍵名和鍵值,使用兩個用戶自定義的鍵名比較函數)。 array_unique() 刪除數組中重復的值。 array_unshift() 在數組開頭插入一個或多個元素。 array_values() 返回數組中所有的值。 array_walk() 對數組中的每個成員應用用戶函數。 array_walk_recursive() 對數組中的每個成員遞歸地應用用戶函數。 arsort() 對關聯數組按照鍵值進行降序排序。 asort() 對關聯數組按照鍵值進行升序排序。 compact() 創建一個包含變數名和它們的值的數組。 count() 返回數組中元素的數目。 current() 返回數組中的當前元素。 each() 返回數組中當前的鍵/值對。 end() 將數組的內部指針指向最後一個元素。 extract() 從數組中將變數導入到當前的符號表。 in_array() 檢查數組中是否存在指定的值。 key() 從關聯數組中取得鍵名。 krsort() 對關聯數組按照鍵名降序排序。 ksort() 對關聯數組按照鍵名升序排序。 list() 把數組中的值賦給一些數組變數。 natcasesort() 用自然排序演算法對數組進行不區分大小寫字母的排序。 natsort() 用自然排序演算法對數組排序。 next() 將數組中的內部指針向前移動一位。 pos() current() 的別名。 prev() 將數組的內部指針倒回一位。 range() 創建一個包含指定范圍的元素的數組。 reset() 將數組的內部指針指向第一個元素。 rsort() 對數值數組進行降序排序。 shuffle() 把數組中的元素按隨機順序重新排列。 sizeof() count() 的別名。 sort() 對數值數組進行升序排序。 uasort() 使用用戶自定義的比較函數對數組中的鍵值進行排序。 uksort() 使用用戶自定義的比較函數對數組中的鍵名進行排序。 usort() 使用用戶自定義的比較函數對數組進行排序。
9. php 二維數組 從縱向轉為橫向
<?php
//自定義晌山數組排列函數
functiondiy_arr($arr){
foreach($arr['MerchID']as$k=>$v){
$arr2[]=array('MerchID'=>$v,'requinum'大謹羨=>$arr['Number'滾拍][$k]);
}
return$arr2;
}
//原數組
$arr=Array('MerchID'=>Array('0'=>'M3','1'=>'M4','2'=>'NF2016081854333'),'Number'=>Array('0'=>300,'1'=>100,'2'=>12));
//列印原數組
print_r($arr);
//重新排列
$arr=diy_arr($arr);
//列印排列後的數組
print_r($arr);
?>
10. php數組的key與value翻轉
可以逆轉,不過其中會有3個值,因為你的b,d,f出現都是一次,所以轉過來以後b,d的位置就會被最後出現的f替換掉
$arr = array("a","b","c","a","c","a",'d','f');
$list = array_count_values($arr);
echo "<pre>";
print_r($list);
foreach($list as $k=>$v){
$arr1[$v]=$k;
}
建議重組
輸出如下:
Array
(
[a] => 3
[b] => 1
[c] => 2
[d] => 1
[f] => 1
)
Array
(
[3] => a
[1] => f
[2] => c
)