获取指定数组的第一个键值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取指定数组的第一个键值?相关的知识,希望对你有一定的参考价值。

获取指定数组的第一个键值

array_key_first
(PHP 7 >= 7.3.0)
array_key_first — 获取指定数组的第一个键值
说明
array_key_first ( array $array ) : mixed
取得指定数组的 array 第一个键值,不影响到原数组的内部指针。
参数
array
要操作的数组。
返回值
返回 array 的第一个键值(如果不为空),否则返回 null。
范例
示例 #1 array_key_first() 基本用法
1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
var_dump($firstKey);
?>
以上例程会输出:
string(1) "a"
参考技术A array_key_first
(PHP 7 >= 7.3.0)
array_key_first — 获取指定数组的第一个键值
说明
array_key_first ( array $array ) : mixed
取得指定数组的 array 第一个键值,不影响到原数组的内部指针。
参数
array
要操作的数组。
返回值
返回 array 的第一个键值(如果不为空),否则返回 null。
范例
示例 #1 array_key_first() 基本用法
1, 'b' => 2, 'c' => 3];
$firstKey = array_key_first($array);
var_dump($firstKey);
?>
以上例程会输出:
string(1) "a"
参考技术B 把 String s 申明到外面 , s 变量就可以在循环外使用。。

定义到循环里面,它的作用域只在循环内部,所以报错。。
参考技术C 用变量定位,也可以用指针取得变量的地址,第零个偏移位置的值就是 参考技术D 数组没有所谓的“键”,也没有第一个“键值”

排序具有指定键值的数组PHP [重复]

【中文标题】排序具有指定键值的数组PHP [重复]【英文标题】:Sort An array with its specified key value PHP [duplicate] 【发布时间】:2015-02-14 10:34:02 【问题描述】:

我有一个像

这样的数组
Array
(
[0] => stdClass Object
    (
        [id] => 3870
        [title] => Ignacio González visita los terrenos donde se ubicará el futuro aeródromo del Suroeste
        [id_galeria] => 3784
        [noticia_id] => 
        [medio] => 
        [programa] => 
        [fecha] => 2013-06-26
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130626_aerodromo.flv
        [descargable] => /descargas/mp4/20130626_aerodromo.mp4
        [miniatura] => /images/img/videos/20130626_01.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6020
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )
[1] => stdClass Object
    (
        [id] => 3871
        [title] => Ignacio González inaugura la Sede del Instituto Madrileño de Estudios Avanzados de Energía, puntero a nivel mundial
        [id_galeria] => 3785
        [noticia_id] => 
        [medio] => 
        [programa] => 
        [fecha] => 2013-06-26
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130626_indea.flv
        [descargable] => /descargas/mp4/20130626_indea.mp4
        [miniatura] => /images/img/videos/20130626_02.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6021
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[2] => stdClass Object
    (
        [id] => 3879
        [title] => Ignacio González visita los terrenos donde se ubicará el futuro aeródromo del Suroeste
        [id_galeria] => 3784
        [noticia_id] => 
        [medio] => Telemadrid
        [programa] => 
        [fecha] => 2013-06-26
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130626_aerodromo_presidencia.flv
        [descargable] => /descargas/mp4/20130626_aerodromo_presidencia.mp4
        [miniatura] => /images/img/videos/20130626_01_tm.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6020
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[3] => stdClass Object
    (
        [id] => 3867
        [title] => Ignacio González recibe al Real Madrid de Baloncesto tras proclamarse Campeón de Liga
        [id_galeria] => 3778
        [noticia_id] => 
        [medio] => 
        [programa] => 
        [fecha] => 2013-06-25
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130620_baloncestorealmadrid.flv
        [descargable] => /descargas/mp4/20130620_baloncestorealmadrid.mp4
        [miniatura] => /images/img/videos/20130620_01_tm.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6010
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[4] => stdClass Object
    (
        [id] => 3868
        [title] => Ignacio González inaugura el nuevo Centro de Salud de Rivas-Vaciamadrid
        [id_galeria] => 3782
        [noticia_id] => 
        [medio] => 
        [programa] => 
        [fecha] => 2013-06-25
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130625_salud.flv
        [descargable] => /descargas/mp4/20130625_salud.mp4
        [miniatura] => /images/img/videos/20130625_01.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6018
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[5] => stdClass Object
    (
        [id] => 3869
        [title] => Ignacio González entrega los Premios de la Revista Mercados del Vino y la Distribución
        [id_galeria] => 3783
        [noticia_id] => 
        [medio] => 
        [programa] => 
        [fecha] => 2013-06-25
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130625_vino.flv
        [descargable] => /descargas/mp4/20130625_vino.mp4
        [miniatura] => /images/img/videos/20130625_02.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6019
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[6] => stdClass Object
    (
        [id] => 3872
        [title] => Ignacio González inaugura el nuevo Centro de Salud de Rivas-Vaciamadrid
        [id_galeria] => 3782
        [noticia_id] => 
        [medio] => Telemadrid
        [programa] => 
        [fecha] => 2013-06-25
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130625_telemadrid_rivascentrosalud.flv
        [descargable] => /descargas/mp4/20130625_telemadrid_rivascentrosalud.mp4
        [miniatura] => /images/img/videos/20130625_01_tm.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6018
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[7] => stdClass Object
    (
        [id] => 3864
        [title] => Ignacio González visita una residencia donde conocerá una aplicación para confeccionar menús equilibrados para mayores
        [id_galeria] => 3780
        [noticia_id] => 
        [medio] => 
        [programa] => 
        [fecha] => 2013-06-24
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130624menu.flv
        [descargable] => /descargas/mp4/20130624menu.mp4
        [miniatura] => /images/img/videos/20130624_01.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6016
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[8] => stdClass Object
    (
        [id] => 3865
        [title] => Ignacio González asiste a la entrega de la II Edición de los Premios a la Excelencia Educativa del Ayuntamiento de las Rozas
        [id_galeria] => 3781
        [noticia_id] => 
        [medio] => 
        [programa] => 
        [fecha] => 2013-06-24
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130624_excelencia.flv
        [descargable] => /descargas/mp4/20130624_excelencia.mp4
        [miniatura] => /images/img/videos/20130624_02.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6017
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )

[9] => stdClass Object
    (
        [id] => 3873
        [title] => Ignacio González visita una residencia donde conocerá una aplicación para confeccionar menús equilibrados para mayores
        [id_galeria] => 3780
        [noticia_id] => 
        [medio] => Telemadrid
        [programa] => 
        [fecha] => 2013-06-24
        [created] => 0000-00-00 00:00:00
        [video] => /descargas/flv/20130624_telemadrid_menusmayores.flv
        [descargable] => /descargas/mp4/20130624_telemadrid_menusmayores.mp4
        [miniatura] => /images/img/videos/20130624_01_tm.jpg
        [published] => 1
        [checked_out] => 0
        [checked_out_time] => 0000-00-00 00:00:00
        [noticia] => 6016
        [metakey] => 
        [ordering] => 
        [state] => 1
        [created_by] => 
    )
)

并且我想使用名为[noticia] 的键值对数组进行排序。我已经尝试了很多,但我未能在不更改其索引的情况下使用此键值进行排序。

我需要同时使用两个键值对数组进行排序,这意味着使用最近的 fecha(日期),还需要使用 noticia 对数组进行排序。我该怎么做?

【问题讨论】:

目前我正在使用这个函数对数组进行排序,但我从来没有得到我想要的结果,我不知道我使用的错误。function sorttitle($a, $b) if ($a- >noticia == $b->noticia) 返回 0;返回 ($a->noticia noticia) ? 1:-1; uasort($this->items, 'sorttitle'); 这里是原始数组 [link]doceysumando.ddns.net:18080/icm-indra2/index.php/videos/videos/… 我想用 DESC 顺序对数组进行排序 此处为空的 [noticia] 值? 父数组的名称? 【参考方案1】:
function cmp($a, $b) 
  return strcmp($a->count, $b->count);

usort($your_array, "cmp");

使用usort()

【讨论】:

什么是 $a 和 $b ?! cmp 函数是如何使用 $a 和 $b 的? @AfghanWiz,请阅读答案中提供的链接文档。 如果我想用 noticia 排序并用 fecha 排序意味着最近的在前.. 那我该怎么办? 我需要一个简单的数组,最近的第一个,并且还按通知排序。你明白我的需要吗?我知道这有点令人困惑,但请帮助我 @ProgrammingStudent,是的,你是对的! :)【参考方案2】:

这使用uasort() 函数按 DESC 顺序按通知字段对数组进行排序:

function fn($a, $b) 
     if ($a['fetcha'] == $b['fetcha']) 
        if($a['noticia'] == $b['noticia']) 
           return 0;
        
        return ($a['noticia'] > $b['noticia']) ? -1 : 1;
    
    return ($a['fetcha'] > $b['fetcha']) ? -1 : 1;

uasort($arrayName, "fn");

echo "<pre>";print_r($arrayName);

【讨论】:

我需要同时对具有两个键值的数组进行排序,这意味着使用 fecha(date) 最近并且还使用 noticia 对数组进行排序。我该怎么做? 查看更新的答案! 谢谢@AfghanWiz,您的更新回答对我有用。非常感谢 不客气,Prabhash :)

以上是关于获取指定数组的第一个键值?的主要内容,如果未能解决你的问题,请参考以下文章

php 获取数组第一个key 第一个键值对 等等

php 获取数组第一个key 第一个键值对 等等

取消设置不知道第一项键值的数组的第一个元素

如何获取 JSON 中的第一个键值?

mongoose.findByIdAndUpdate 只会保存被推入数组的对象的第一个键值

mongoose.findByIdAndUpdate 只会保存被推入数组的对象的第一个键值