我有一個數組,看起來像這樣:如何在使用array_push()時控制數組鍵?
$date_data = array(
$date_title => array(
'title' => get_field('jahr'),
'permalink' => get_the_permalink(),
)
);
這個數組是一個循環內被髮布到陣列$archive_years
。如果$date_title
的值已經作爲數組中的鍵存在,我不希望它被複制,所以值應該被推送到現有的鍵。
現在這是發生了什麼:
array(2) {
[0]=>
array(1) {
["2020 - 2010"]=>
array(2) {
["title"]=>
string(4) "2013"
["permalink"]=>
string(68) "http://example.com"
}
}
[1]=>
array(1) {
["2020 - 2010"]=>
array(2) {
["title"]=>
string(4) "2016"
["permalink"]=>
string(66) "http://example.com/example"
}
}
}
正如你看到2020 - 2010
列出了兩次。如何將我的值(get_field('jahr')
和get_the_permalink()
)分配給現有密鑰,因此沒有重複的密鑰?
這是整個代碼:
$archive_years = array();
$args = array('post_type' => 'archiv');
$loop = new WP_Query($args);
while ($loop->have_posts()) : $loop->the_post();
// Specify the interval
$date_up = ceil(get_field('jahr')/10) * 10;
$date_down = ceil(get_field('jahr')/10) * 10 - 10;
$date_title = $date_up . ' - ' . $date_down;
$date_data = array(
$date_title => array(
'title' => get_field('jahr'),
'permalink' => get_the_permalink(),
)
);
if (!array_key_exists($date_title, $archive_years)) {
array_push($archive_years, $date_data);
}
endwhile;
foreach ($archive_years as $key => $value) {
foreach ($value as $k => $v) {
echo '
<button type="button" class="btn btn-info collapsible" data-toggle="collapse" data-target="#archiv_'. $v['title'] .'">'. $k .'</button>
<div id="archiv_'. $v['title'] .'" class="collapse">
<a href="'. $v["permalink"] .'">'. $v["title"] .'</a><br>
</div>';
}
}
var_dump($archive_years);
使用'array_merge($ archive_years,$ date_data);'var_dump返回'array(0){}'。 – Reza