PHP 按模板对数组中的键重新排序
PHP reorder keys in array by template
我有这样的数组:
$array = array(
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'adsasdasdasd',
'Call Status' => 'asdadad:',
'Call status options' => 'asdadsad',
'Question 1' => 'asdadads',
'Answer 1' => 'Psdado',
'Question 2' => 'asdadadsasd',
'Answer 2' => 'aasdadasdads',
'Telephone 1' => 'asdadsadsqd',
'Status tel 1' => 'asdasdad'
),
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'asdadadsasdad',
'Call Status' => "asdadsasdasd",
'Call status options' => 'Busy',
'Telephone 1' => 'asdadsasd',
'Status tel 1' => 'sdasdasdad',
'Question 1' => '',
'Answer 1' => '',
'Question 2' =>'',
'Answer 2' =>''
) ...
);
后面的其他数组,键是混淆的,但它们都有相同的键。
我想以相同的顺序对所有数组键进行排序,
默认情况下的示例是 $array[0],接下来是 $array[1]、$array[2],...所有的键都按 $array[0] 顺序排列。
如果输入是从顶部开始的数组,结果应该是:
$array = array(
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'adsasdasdasd',
'Call Status' => 'asdadad:',
'Call status options' => 'asdadsad',
'Question 1' => 'asdadads',
'Answer 1' => 'Psdado',
'Question 2' => 'asdadadsasd',
'Answer 2' => 'aasdadasdads',
'Telephone 1' => 'asdadsadsqd',
'Status tel 1' => 'asdasdad'
),
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'asdadadsasdad',
'Call Status' => "asdadsasdasd",
'Call status options' => 'Busy',
'Question 1' => '',
'Answer 1' => '',
'Question 2' =>'',
'Answer 2' =>'',
**'Telephone 1' => 'asdadsasd',
'Status tel 1' => 'sdasdasdad'**
)
);
我想你可以使用这样的东西:
$array = array(
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'adsasdasdasd',
'Call Status' => 'asdadad:',
'Call status options' => 'asdadsad',
'Question 1' => 'asdadads',
'Answer 1' => 'Psdado',
'Question 2' => 'asdadadsasd',
'Answer 2' => 'aasdadasdads',
'Telephone 1' => 'asdadsadsqd',
'Status tel 1' => 'asdasdad'
),
array(
'Date' => '2015-10-25',
'Week Day' => 'Monday',
'Hour' => 'asdads',
'Intoduction' => 'adsf',
'Call Status' => "hgfv",
'Call status options' => 'Hi',
'Telephone 1' => 'nbvnb',
'Status tel 1' => 'klasdfjdfjf',
'Question 1' => '',
'Answer 1' => '',
'Question 2' =>'',
'Answer 2' =>'5'
)
);
$temp = array();
$keys = $array[0];
$sorted_keys = array();
foreach($keys as $key => $value) { //Choose the desired order depending on the first element keys
$sorted_keys[] = $key;
}
foreach($array as $key => $value) { //For every element in the data array
foreach($sorted_keys as $s_key => $s_value) { //Select to input the right key on the right place
$temp[$key][$s_value] = $value[$s_value];
}
}
var_dump($temp);
结果:
array (size=2)
0 =>
array (size=12)
'Date' => string '2015-10-23' (length=10)
'Week Day' => string 'Friday' (length=6)
'Hour' => string 'asdads' (length=6)
'Intoduction' => string 'adsasdasdasd​' (length=15)
'Call Status' => string 'asdadad:' (length=8)
'Call status options' => string 'asdadsad' (length=8)
'Question 1' => string 'asdadads' (length=8)
'Answer 1' => string 'Psdado' (length=6)
'Question 2' => string 'asdadadsasd' (length=11)
'Answer 2' => string 'aasdadasdads' (length=12)
'Telephone 1' => string 'asdadsadsqd' (length=11)
'Status tel 1' => string 'asdasdad' (length=8)
1 =>
array (size=12)
'Date' => string '2015-10-25' (length=10)
'Week Day' => string 'Monday' (length=6)
'Hour' => string 'asdads' (length=6)
'Intoduction' => string 'adsf' (length=4)
'Call Status' => string 'hgfv' (length=4)
'Call status options' => string 'Hi' (length=2)
'Question 1' => string '' (length=0)
'Answer 1' => string '' (length=0)
'Question 2' => string '' (length=0)
'Answer 2' => string '5' (length=1)
'Telephone 1' => string 'nbvnb' (length=5)
'Status tel 1' => string 'klasdfjdfjf' (length=11)
我有这样的数组:
$array = array(
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'adsasdasdasd',
'Call Status' => 'asdadad:',
'Call status options' => 'asdadsad',
'Question 1' => 'asdadads',
'Answer 1' => 'Psdado',
'Question 2' => 'asdadadsasd',
'Answer 2' => 'aasdadasdads',
'Telephone 1' => 'asdadsadsqd',
'Status tel 1' => 'asdasdad'
),
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'asdadadsasdad',
'Call Status' => "asdadsasdasd",
'Call status options' => 'Busy',
'Telephone 1' => 'asdadsasd',
'Status tel 1' => 'sdasdasdad',
'Question 1' => '',
'Answer 1' => '',
'Question 2' =>'',
'Answer 2' =>''
) ...
);
后面的其他数组,键是混淆的,但它们都有相同的键。 我想以相同的顺序对所有数组键进行排序, 默认情况下的示例是 $array[0],接下来是 $array[1]、$array[2],...所有的键都按 $array[0] 顺序排列。
如果输入是从顶部开始的数组,结果应该是:
$array = array(
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'adsasdasdasd',
'Call Status' => 'asdadad:',
'Call status options' => 'asdadsad',
'Question 1' => 'asdadads',
'Answer 1' => 'Psdado',
'Question 2' => 'asdadadsasd',
'Answer 2' => 'aasdadasdads',
'Telephone 1' => 'asdadsadsqd',
'Status tel 1' => 'asdasdad'
),
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'asdadadsasdad',
'Call Status' => "asdadsasdasd",
'Call status options' => 'Busy',
'Question 1' => '',
'Answer 1' => '',
'Question 2' =>'',
'Answer 2' =>'',
**'Telephone 1' => 'asdadsasd',
'Status tel 1' => 'sdasdasdad'**
)
);
我想你可以使用这样的东西:
$array = array(
array(
'Date' => '2015-10-23',
'Week Day' => 'Friday',
'Hour' => 'asdads',
'Intoduction' => 'adsasdasdasd',
'Call Status' => 'asdadad:',
'Call status options' => 'asdadsad',
'Question 1' => 'asdadads',
'Answer 1' => 'Psdado',
'Question 2' => 'asdadadsasd',
'Answer 2' => 'aasdadasdads',
'Telephone 1' => 'asdadsadsqd',
'Status tel 1' => 'asdasdad'
),
array(
'Date' => '2015-10-25',
'Week Day' => 'Monday',
'Hour' => 'asdads',
'Intoduction' => 'adsf',
'Call Status' => "hgfv",
'Call status options' => 'Hi',
'Telephone 1' => 'nbvnb',
'Status tel 1' => 'klasdfjdfjf',
'Question 1' => '',
'Answer 1' => '',
'Question 2' =>'',
'Answer 2' =>'5'
)
);
$temp = array();
$keys = $array[0];
$sorted_keys = array();
foreach($keys as $key => $value) { //Choose the desired order depending on the first element keys
$sorted_keys[] = $key;
}
foreach($array as $key => $value) { //For every element in the data array
foreach($sorted_keys as $s_key => $s_value) { //Select to input the right key on the right place
$temp[$key][$s_value] = $value[$s_value];
}
}
var_dump($temp);
结果:
array (size=2)
0 =>
array (size=12)
'Date' => string '2015-10-23' (length=10)
'Week Day' => string 'Friday' (length=6)
'Hour' => string 'asdads' (length=6)
'Intoduction' => string 'adsasdasdasd​' (length=15)
'Call Status' => string 'asdadad:' (length=8)
'Call status options' => string 'asdadsad' (length=8)
'Question 1' => string 'asdadads' (length=8)
'Answer 1' => string 'Psdado' (length=6)
'Question 2' => string 'asdadadsasd' (length=11)
'Answer 2' => string 'aasdadasdads' (length=12)
'Telephone 1' => string 'asdadsadsqd' (length=11)
'Status tel 1' => string 'asdasdad' (length=8)
1 =>
array (size=12)
'Date' => string '2015-10-25' (length=10)
'Week Day' => string 'Monday' (length=6)
'Hour' => string 'asdads' (length=6)
'Intoduction' => string 'adsf' (length=4)
'Call Status' => string 'hgfv' (length=4)
'Call status options' => string 'Hi' (length=2)
'Question 1' => string '' (length=0)
'Answer 1' => string '' (length=0)
'Question 2' => string '' (length=0)
'Answer 2' => string '5' (length=1)
'Telephone 1' => string 'nbvnb' (length=5)
'Status tel 1' => string 'klasdfjdfjf' (length=11)