我正在尝试将WP函数get_page_title与page_ID一起使用。
它看起来像这样。
FROM
array (
0 => 'Home',
1 => 101,
2 => 'About',
3 => 102,
4 => 'Portfolio',
5 => 103,
6 => 'Price',
7 => 104,
8 => 'Contact',
9 => 105,
)
要
array (
'101' => 'Home',
'102' => 'About',
'103' => 'Portfolio',
'104' => 'Price',
'105' => 'Contact',
)
示例
array (
'page_ID' => 'page_title',
)
答案 0 :(得分:0)
假设您的键始终在奇数索引中,并且值始终在偶数索引中,并且每个键的编号相同:
$data = array (
0 => 'Home',
1 => 101,
2 => 'About',
3 => 102,
4 => 'Portfolio',
5 => 103,
6 => 'Price',
7 => 104,
8 => 'Contact',
9 => 105,
);
$values = array_filter($data, function($key) {
return $key % 2 == 0;
}, ARRAY_FILTER_USE_KEY);
$keys = array_filter($data, function($key) {
return $key % 2 == 1;
}, ARRAY_FILTER_USE_KEY);
var_dump(array_combine($keys, $values));
输出:
array (size=5)
101 => string 'Home' (length=4)
102 => string 'About' (length=5)
103 => string 'Portfolio' (length=9)
104 => string 'Price' (length=5)
105 => string 'Contact' (length=7)
或者,您可以排序然后装入阵列
//the string will be in the beggining and the numbers at the end
sort($data, SORT_NUMERIC); //important SORT_NUMERIC to not mix the string values
$data = array_combine(array_slice($data, count($data)/2), array_slice($data, 0, count($data)/2));
答案 1 :(得分:0)
这可能是矫kill过正,但是如果ID和标题的数量始终相同,并且标题不能以数字开头:
$array = array_combine(preg_grep('/^\d+/', $array), preg_grep('/^[a-z]+/i', $array));
答案 2 :(得分:0)
我在假设别人在数组中总是有偶数个元素并且以value / key / value / key / etc的顺序进行排列时使用相同的假设,但这是一个很干净的选择: / p>
$output = [];
while ($data && ($v = array_shift($data)) && ($k = array_shift($data))) {
$output[$k] = $v;
}
答案 3 :(得分:0)
这是没有array_filter和array_shift函数的另一种实现方法:
$i = 0;
while ($i < count($arr)) {
$val = $arr[$i++];
$key = $arr[$i++];
empty($key) ?: $new_arr[$key] = $val;
}