Php 仅回显唯一值

Php 仅回显唯一值,php,Php,我有一个打印新闻稿的XML文件。我想回应新闻稿发布的所有年份,就像档案一样。只有唯一的值。下面的代码打印出所有年份。类似于“20172017201720162016201520152014”,而非“20172016201520142013” 记下已经打印的日期 $printed = []; foreach ($xml->Releases as $release) { $year = date('Y', strtotime($release['PublishDateUtc']));

我有一个打印新闻稿的XML文件。我想回应新闻稿发布的所有年份,就像档案一样。只有唯一的值。下面的代码打印出所有年份。类似于“20172017201720162016201520152014”,而非“20172016201520142013”


记下已经打印的日期

$printed = [];

foreach ($xml->Releases as $release) {
    $year = date('Y', strtotime($release['PublishDateUtc']));

    if (!isset($printed[$year])) {
        echo $year;
        $printed[$year] = $year;
    }
}

记下已经打印的日期

$printed = [];

foreach ($xml->Releases as $release) {
    $year = date('Y', strtotime($release['PublishDateUtc']));

    if (!isset($printed[$year])) {
        echo $year;
        $printed[$year] = $year;
    }
}
试试这个

<?php
$file        = "file.xml";
$xml         = simplexml_load_file($file);
$yearArray   = array();
$uniqueArray = array();
foreach ($xml->Release as $release) {
    $date        = $release['PublishDateUtc'];
    /* $date is now in format yyyy-mm-ddT06:30:00 */
    $year        = substr($date, 0, 4);
    $yearArray[] = $year;
}

$uniqueArray = array_unique($yearArray);
print_r($uniqueArray);
?>

初始化2个额外变量,并在循环内生成年数组。然后打印唯一数组。

试试这个

<?php
$file        = "file.xml";
$xml         = simplexml_load_file($file);
$yearArray   = array();
$uniqueArray = array();
foreach ($xml->Release as $release) {
    $date        = $release['PublishDateUtc'];
    /* $date is now in format yyyy-mm-ddT06:30:00 */
    $year        = substr($date, 0, 4);
    $yearArray[] = $year;
}

$uniqueArray = array_unique($yearArray);
print_r($uniqueArray);
?>


初始化2个额外变量,并在循环内生成年数组。然后打印唯一数组。

值是否始终按顺序排列?然后只需将最后一个值存储在变量中,并且仅当最后一个值不等于当前值时才回显。这些值是否始终按顺序排列?然后,只需将最后一个值存储在变量中,并且仅在最后一个值不等于当前值时进行echo。您可以执行
echo$printed[$year]=$year
,保存一行代码。谢谢,这对我帮助很大!你可以做
echo$printed[$year]=$year
,保存一行代码。谢谢,这对我帮助很大!