අරාවෙහි පළමු අංගය ලබා ගන්න


1088

මට පෙළක් තිබේ:

array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )

මෙම අරාවෙහි පළමු අංගය ලබා ගැනීමට මම කැමතියි. අපේක්ෂිත ප්‍රති result ලය: නූල් apple

එක් අවශ්‍යතාවයක්: එය යොමු කිරීමකින් කළ නොහැක , එබැවින් array_shiftහොඳ විසඳුමක් නොවේ.

මට මෙය කළ හැක්කේ කෙසේද?


1
ඔබ අදහස් කරන්නේ කුමක්ද, යොමු කිරීමෙන් කළ නොහැකිද?
cjk

&$arrayපරාමිතීන් ලෙස ක්‍රියා කිරීම ක්‍රියා නොකළ යුතුය .
hsz

4
ඔබ "සැබවින්ම" යන්නෙන් අදහස් කරන්නේ "යොමු කිරීමකින් කළ නොහැකි" යන්නයි, ඔබේ අරාව දත්ත සමුදායකින් ගතිකව ආපසු ලබා දෙන බවත්, පළමු මූලද්‍රව්‍යය ගැනීමට පෙර අරාව විචල්‍යයකට යැවීමට ඔබට අවශ්‍ය නැති බවත් මම සැක කරමි. එයින්. මම නිවැරදියි නම්, ඔබට පහත දක්වා ඇති සියලු විසඳුම්වලින් බහුතරයක් (පිළිගත් පිළිතුර ද ඇතුළුව) ප්‍රමාණවත් නොවේ.
cartbeforehorse

ඔබට එය ලබා ගත යුතුද? නැතහොත් එය ලබාගෙන පවතින අරාවෙන් ඉවත් කළ යුතුද?
ජෝ ස්මෝ

අරා වල මූලික භාවිතය සඳහා ඔබට මෙම සබැඳිය සමාලෝචනය කළ හැකිය technfusions.com/introduction-to-arrays-in-php
Vikrant Vir Bhalla

Answers:


1392

මුල් පිළිතුර, නමුත් මිල අධික (O (n)):

array_shift(array_values($array));

O (1) හි:

array_pop(array_reverse($array));

වෙනත් භාවිත අවස්ථා, ආදිය ...

(අරාව දර්ශක නැවත සැකසීමේ අර්ථයෙන්) වෙනස් කිරීම $arrayගැටළුවක් නොවේ නම්, ඔබට මෙය භාවිතා කළ හැකිය:

reset($array);

අරාව "පිටපතක්" අවශ්‍ය නම් මෙය න්‍යායාත්මකව වඩා කාර්යක්ෂම විය යුතුය:

array_shift(array_slice($array, 0, 1));

PHP 5.4+ සමඟ (නමුත් හිස් නම් දර්ශක දෝෂයක් ඇතිවිය හැක):

array_values($array)[0];

77
අරා_ අගයන් () සමඟ මුල් අරාව වෙනස් කිරීම වැළැක්වීම සඳහා දක්ෂ වැඩ සඳහා +1
ක්‍රිස්ආර්

44
මට මෙය ලැබුණි: <b> දැඩි ප්‍රමිති </ b>: යොමු කළ යුත්තේ විචල්‍යයන් පමණි. නියම වැඩකටයුතු btw
සිමෝන්

191
මෙය ටිකක් වැඩිපුර මරණයක් නොවේද? අරාවෙහි මූලද්‍රව්‍ය දහස් ගණනක් තිබේ නම් කුමක් කළ යුතුද? එහි පළමු අංගය ලබා ගැනීම සඳහා නව අරා එකක් නිර්මාණය කිරීම සාධාරණද? list()හා reset()මගේ මතය සදයට විසඳුම් වේ.
මාටින් ඩිමිට්‍රොව්

33
මම එකඟයි. වත්මන් අගය නැවත සැකසෙන සහ ආපසු ලබා දෙන එක් පේළියකට සාපේක්ෂව මුළු අතිරික්ත හා අසාමාන්‍ය සම්පත් බර: යළි පිහිටුවීම ($ අරාව);
zmonteca

48
-1 ඉහත විවරණකරුවන් පවසා ඇති පරිදි. මට උඩු යටිකුරු 101 ක් තිබීම මට කරදරයකි.
කක්ෂයේ සැහැල්ලු ධාවන තරඟ

796

මයික් පෙන්වා දුන් පරිදි (හැකි පහසුම ක්‍රමය):

$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' )
echo reset($arr); // Echoes "apple"

ඔබට යතුර ලබා ගැනීමට අවශ්‍ය නම්: (නැවත සැකසීමෙන් පසු එය ක්‍රියාත්මක කරන්න)

echo key($arr); // Echoes "4"

සිට PHP හි ප්රලේඛනය :

මිශ්‍ර යළි පිහිටුවීම (අරාව & $ අරාව );

විස්තර:

යළි පිහිටුවීම () අරාවේ අභ්‍යන්තර දර්ශකය පළමු මූලද්‍රව්‍යයට පෙරළා පළමු අරා මූලද්‍රව්‍යයේ අගය නැවත ලබා දෙයි, නැතහොත් අරාව හිස් නම් වැරදිය.


යළි පිහිටුවීම සඳහා එය සම්මත වුවද, මුල් අරාව වෙනස් නොවේ. මම හිතන්නේ එච්එස්එස් එය යොමු කිරීමකින් සම්මත කිරීමට අකමැති වීමට හේතුව එයයි ..?
ඩෙනිස් ජමින්

10
අරාවෙහි අනුකාරකය වෙනස් කර ඇත. ඔබ මෙය foreachවිෂය අරාව සමඟ කරන්නේ නම් , ඔබ එය ඉස්කුරුප්පු කරනු ඇත.
සෙනෙක්සර්

2
En සීනෙක්සර් මෙය සැමවිටම (සාමාන්‍යයෙන්) සත්‍ය නොවේ. සාමාන්‍යයෙන් ප්‍රායෝගිකව, foreachඑය හරහා ගමන් කරන අරාව පිටපත් කරනු ඇත.
ලූක් ous ාති සහෝදරයා

1
Reset නැවත සැකසීමෙන් පසුව, ඔබට ඇමතිය හැකි key($arr)අතර ඔබට '4' ලැබෙනු ඇත (පිළිතුරට එකතු කර ඇත)
lepe

3
En සීනෙක්සර් හෝ ලූක් ous ාති සහෝදරයන් හරි නැත: 1) foreach විසින් අරාවෙහි අභ්‍යන්තර දර්ශකය භාවිතා නොකරයි - ඒ වෙනුවට එය තමන්ගේම දර්ශකයක් නිර්මාණය කරයි. Foreach ඇතුළත ඇමතුම් යළි පිහිටුවීම පරීක්ෂා කිරීම පහසුය - කිසිදු බලපෑමක් නොමැතිව ලූපය එය අනුගමනය කරනු ඇත reset(). 2) නැත, foreach අරාවෙහි පිටපතක් සාදන්නේ නැත !!! එය නිර්මාණය කරන්නේ එයටම ආවේණික වූ දර්ශකයක් පමණි (පවතින එකක පිටපතක් පවා නැත - එය පරීක්ෂා කිරීමද පහසුය, next()පුරෝකථනය කිරීමට පෙර ඇමතීම ).
dmikam

278
$first_value = reset($array); // First element's value
$first_key = key($array); // First element's key

2
මම එය ඇත්ත වශයෙන්ම අත්හදා බලා නැත, නමුත් මෙම ප්‍රවේශය වඩාත් කාර්යක්ෂම වනු ඇති බව පෙනේ.
mason81

4
ගැටළුව පමණක් වටිනාකම ඉල්ලා සිටින ප්‍රශ්නය මිස යතුර නොවේ. මේ අනුව යතුර ($ අරාව) වෙනුවට වත්මන් ($ අරාව) භාවිතා කළ යුතුය
zmonteca

4
@zmonteca $ first_value = යළි පිහිටුවීම (ray අරාව); මෙහිදී ඔබට අගය ලැබෙනු ඇත, යළි පිහිටුවීම () ශ්‍රිතය අරා අභ්‍යන්තර දර්ශකය නැවත සකස් කර පළමු අංගය ලබා දෙයි.
S3Mi

2
හොඳම පිළිතුර! පළමු අගය ලබා ගැනීම සඳහා යතුරු () සමානතාව සොයමින් සිටියේය. මෙය උපකාරී වේ!
ඇලයින් ටයිම්බ්ලෝ

98
$arr = $array = array( 9 => 'apple', 7 => 'orange', 13 => 'plum' );
echo reset($arr); // echoes 'apple'

වත්මන් දර්ශක ස්ථානය නැති කර ගැනීමට ඔබට අවශ්‍ය නැතිනම්, අරාව සඳහා අන්වර්ථයක් සාදන්න.


1
එය තේරුනේ නැත, ඔබ අදහස් කළේ කුමක්ද? පළමු යතුර අනෙක් ඒවාට වඩා විශාලද යන්න එය හොඳින් ක්‍රියාත්මක වේ.
යෝඩා

30
+1 FYI reset()දැනටමත් පළමු අංගය නැවත ලබා දී ඇත, එබැවින් භාවිතා කිරීමට අවශ්‍ය නැත current()- echo reset($arr)ප්‍රමාණවත් විය යුතුය
මයික්

@Mike නමුත් ඔබ කැමති විය currentකිරීමට reset, සමුද්දේශ අවස්ථාවල දී ඉදිරිපත් PHP දැනුම් / දෝෂයක් වළක්වා ගැනීමට උදා current(array_filter(...));දී 3v4l .
CPHPython

93

current($array)PHP අත්පොතට අනුව , අරාවෙහි පළමු අංගය ඔබට ලබා ගත හැකිය .

සෑම අරාවකටම එහි “වත්මන්” මූලද්‍රව්‍යයට අභ්‍යන්තර දර්ශකයක් ඇත, එය අරාව තුළට ඇතුළු කරන ලද පළමු මූලද්‍රව්‍යයට ආරම්භ වේ.

එබැවින් ඔබ අරාව දර්ශකය නැවත ස්ථානගත කරන තෙක් එය ක්‍රියාත්මක වන අතර එසේ නොමැතිනම් ඔබට අරාව නැවත සැකසීමට සිදුවේ.


4
මෙය පිළිගත් පිළිතුර නොවන්නේ මන්දැයි මම නොදනිමි, මන්ද එය ප්‍රශ්නයට තරමක් සරලව හා නිවැරදිව පිළිතුරු සපයයි.
relipse

26
current($array)අරාව දර්ශකය පළමු අංගයට යොමු කරමින් "දැනට" තිබේ නම් පමණක් ක්‍රියා කරයි, එසේ නොමැති reset($array)නම් අවශ්‍ය වේ.
ජෝන්

6
current()PHP ලියකියවිලි මෙය පිළිබිඹු නොකරන නමුත් එය තවදුරටත් යොමු කිරීමක් අවශ්‍ය නොවන බව පෙනේ . ඉතින් මම හිතන්නේ මේක හොඳම විසඳුම වෙලා.
රයන්

@ රයන් එකඟ වූ නමුත් මෙම විසඳුම 2014 ට වසර 2 කට පෙර මෙම ත්‍රෙඩ් එකේම අනෙක් පිළිතුරෙන් ලබා දී ඇත ... මෙම අසම්පූර්ණ වාක්‍යයට වැඩි නැගීමක් ලැබීම පුදුමයකි.
සීපීඑච්පයිතන්

69

භාෂා සැකැස්මක් සමඟ ඔබට Nth අංගය ලබා ගත හැකිය, "ලැයිස්තුව":

// First item
list($firstItem) = $yourArray;

// First item from an array that is returned from a function
list($firstItem) = functionThatReturnsArray();

// Second item
list( , $secondItem) = $yourArray;

array_keysශ්‍රිතය සමඟ ඔබට යතුරු සඳහාද එයම කළ හැකිය:

list($firstKey) = array_keys($yourArray);
list(, $secondKey) = array_keys($yourArray);

2
මෙය හරියටම මම කරන්නේ: list($first_value) = $my_array;මගේ මතය අනුව, හොඳම විකල්පය. මෙහි ඉදිරිපත් කර ඇති අනෙක් පිළිතුරු වලින් ගැටළු නොමැත: එය "ඕවර්කිල්" නැත, මන්ද එය පිටපත් කිරීම හෝ අරාව හෝ නව එකක් නිර්මාණය නොකිරීමයි. "යොමු" නොමැත: අරාව වෙනස් කර නොමැත. "යළි පිහිටුවීම" නැත: අරාව අභ්‍යන්තර දර්ශකයේ කිසිදු වෙනසක් නොමැත ...
ජේ. බ un නි

6
ඉතා අලංකාර විසඳුමක්, නමුත් අරාව හිස් වූ විට E_NOTICE විසි කරයි.
Tgr

1
Ike මයික් ඔව්, නමුත් එය තවදුරටත් එතරම් අලංකාර නොවේ :)
Tgr

13
මෙය වැරදි නොවේද? එය ක්‍රියාත්මක වන්නේ අරාව යතුරු නම් පමණක් intකිරීමට උත්සාහ කරන්න, list($firstItem) = array('key1' => 'value1');එවිට ඔබට දෝෂයක් ලැබෙනු ඇතNotice: Undefined offset: 0
මාකෝ ඩෙමියෝ

12
පැහැදිලි කිරීම සඳහා: list($x) = foo();සමාන වේ $x = foo()[0];. පූර්ණ සංඛ්‍යා-සුචිගත කරන ලද අරාවකට පවා යතුර 0 සහිත මූලද්‍රව්‍යයක් නොතිබිය හැකි බැවින් මෙය "පළමු අයිතමය ලබා ගන්න" ට සමාන නොවන බව සලකන්න. මගේ නඩුවේදී මම කළේ "ලැයිස්තුව ($ order) = get_order ($ පරිශීලක) ; " නමුත් "get_order" යනු ඔවුන්ගේ හැඳුනුම්පත මඟින් යතුර යවන ලද ඇණවුම් ය. එය සාමාන්‍යයෙන් 0 නොවේ.
වෝර්බෝ

54

PHP 5.4+:

array_values($array)[0];

මෙය නවීනතම සහ විශාලතම දේ ධාවනය කරන සිසිල් මිනිසුන් සඳහා ය. ;)
සෙනෙක්සර්

1
ඔහු අපේ පිළිතුර 2013 ඔක්තෝම්බර් මාසයේදී සංස්කරණය කළේ මා අපේ‍්‍රල් මාසයේදී එකතු කළ පිළිතුර ඇතුළත් කිරීමටයි.
සමර් අටා

PHP 4:$array_values = array_values($array); $value = $array_values[0];
zdick

අරාව හිස් නම් එය නැවත පැමිණෙනු ඇත, undefined key 0එබැවින් එය ප්‍රවේශමෙන් භාවිතා කරන්න
ඇන්ඩ්‍රියා මවුරෝ

40

මුල් අරාව වෙනස් නොකර තාවකාලික වස්තූන් නිර්මාණය නොකර සෘජුවම අරාවෙහි පළමු හා අවසාන යතුර ලබා ගැනීම සඳහා PHP 7.3 කාර්යයන් දෙකක් එකතු කළේය :

අර්ථාන්විත අර්ථවත් වීම හැරුණු විට, මෙම ශ්‍රිතයන් අරාව දර්ශකය පවා ගෙන යන්නේ නැත (මෙන් foreach).

යතුරු තිබීම, යමෙකුට යතුරු මගින් අගයන් කෙලින්ම ලබා ගත හැකිය.


උදාහරණ (ඒ සියල්ලටම PHP 7.3+ අවශ්‍ය වේ)

පළමු / අවසාන යතුර සහ වටිනාකම ලබා ගැනීම:

$my_array = ['IT', 'rules', 'the', 'world'];

$first_key = array_key_first($my_array);
$first_value = $my_array[$first_key];

$last_key = array_key_last($my_array);
$last_value = $my_array[$last_key];

අරාව හිස් විය නොහැකි යැයි උපකල්පනය කරමින් පළමු / අවසාන අගය එක්-ලයිනර් ලෙස ලබා ගැනීම :

$first_value = $my_array[ array_key_first($my_array) ];

$last_value = $my_array[ array_key_last($my_array) ];

හිස් අරා සඳහා පෙරනිමි සහිතව, පළමු / අවසාන අගය එක්-ලයිනර් ලෙස ලබා ගැනීම:

$first_value = empty($my_array) ? 'default' : $my_array[ array_key_first($my_array) ];

$last_value = empty($my_array) ? 'default' : $my_array[ array_key_last($my_array) ];

ශුන්‍ය-සිසිලන ක්‍රියාකරු සමඟ කෙටි කරන්න , සාමාන්‍යයෙන් ශුන්‍යය එසේ වේ: $first_value = $my_array[array_key_first($my_array)] ?? null;
මිචෙල් මැකේනා

28

සිතමු:

$array = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );

භාවිතා කරන්න:

$array[key($array)]

පළමු අංගය ලබා ගැනීමට හෝ

key($array)

පළමු යතුර ලබා ගැනීමට.

නැතහොත් ඔබට එය ඉවත් කිරීමට අවශ්‍ය නම් පළමුවැන්න ඉවත් කළ හැකිය.


9
එසේනම් සරලව භාවිතා නොකරන්නේ currentකුමක්ද?
මාර්කෝ ඩෙමියෝ

26

සමහර අරා list, resetහෝ වැනි ක්‍රියාකාරකම් සමඟ ක්‍රියා නොකරයිcurrent . සමහර විට ඒවා "ව්‍යාජ" අරා - අර්ධ වශයෙන් ArrayIterator ක්‍රියාත්මක කිරීම.

අරාව නොතකා ඔබට පළමු අගය ඇද ගැනීමට අවශ්‍ය නම්, ඔබට කෙටිමං පරිපථයක් යෙදිය හැකිය:

foreach($array_with_unknown_keys as $value) break;

ඔබගේ අගය පසුව ලබා ගත හැකි $valueඅතර පළමු නැවත සිදුකිරීමෙන් පසු ලූපය කැඩී යයි. Array_unshift (array_values ​​($ arr)) වැනි ශ්‍රිතයකට විශාල අරා පිටපත් කිරීමට වඩා මෙය කාර්යක්ෂම වේ.

ඔබට යතුරද මේ ආකාරයෙන් අල්ලා ගත හැකිය:

foreach($array_with_unknown_keys as $key=>$value) break;

ඔබ මෙය ශ්‍රිතයකින් අමතන්නේ නම්, වේලාසනින් ආපසු යන්න:

function grab_first($arr) {
    foreach($arr as $value) return $value;
}

මෙය වේගවත්ම ක්‍රමයක් යැයි මම සිතමි. මන්දයත්, ක්‍රියාකාරී ඇමතුමකට වඩා (එය වඩා මිල අධික) භාෂාව භාවිතා කිරීම මඟින් පුරෝකථනය කිරීමයි. designcise.com/web/tutorial/…
ඉල්ඩාර් අමන්කුලොව්

19

සිට Laravel ගේ කාරයෙක් :

function head($array)
{
    return reset($array);
}

අරාව අගය අනුව ශ්‍රිතයට ලබා දෙන අතර, යළි පිහිටුවීම () අරාවේ පිටපතක අභ්‍යන්තර දර්ශකයට බලපාන අතර එය මුල් අරාව ස්පර්ශ නොකරයි ( falseඅරාව හිස් නම් එය නැවත පැමිණෙන බව සලකන්න ).

භාවිත උදාහරණය:

$data = ['foo', 'bar', 'baz'];

current($data); // foo
next($data); // bar
head($data); // foo
next($data); // baz

එසේම, මෙන්න විකල්පයක්. එය ඉතා සුළු වේගයකින්, නමුත් වඩා රසවත් ය. අරාව හිස් නම් පෙරනිමි අගය පහසුවෙන් වෙනස් කිරීමට එය ඉඩ දෙයි:

function head($array, $default = null)
{
    foreach ($array as $item) {
        return $item;
    }
    return $default;
}

වාර්තාව සඳහා, මෙන්න මගේ තවත් පිළිතුරක් , අරාවෙහි අවසාන අංගය සඳහා.


19

මෙය සරලව තබා ගන්න! මෙහි නිවැරදි පිළිතුරු ගොඩක් ඇත, නමුත් සියලු ව්‍යාකූලතා අවම කිරීම සඳහා, මේ දෙක ක්‍රියා කරන අතර පොදු කාර්ය විශාල ප්‍රමාණයක් අඩු කරයි:

key($array)අරාවෙහි පළමු යතුර ලබා ගන්නේ අරාවෙහි
current($array)පළමු අගය ලබා ගනිමිනි


සංස්කරණය කරන්න:
පහත දැක්වෙන අදහස් සම්බන්ධයෙන්. පහත උදාහරණය ප්‍රතිදානය කරයි:string(13) "PHP code test"

$array = array
(
   '1'           => 'PHP code test',  
   'foo'         => 'bar', 5 , 5 => 89009, 
   'case'        => 'Random Stuff: '.rand(100,999),
   'PHP Version' => phpversion(),
   0             => 'ending text here'
);

var_dump(current($array));

11
අහ්. currentවත්මන් මූලද්රව්යයට සමාන වේ. අරාව ආරම්භයේදීම ඇති බව සහතික කිරීම සඳහා ඔබ දර්ශකය අරාවේ ආරම්භයට නැවත සකස් කළ යුතුය.
waterloomatt

1
වත්මන් () පළමු මූලද්‍රව්‍යය නොව වත්මන් මූලද්‍රව්‍යය ලබා ගනී. එය වෙනස් දෙයක්.
අමීර්හෝසීන් ටර්මාස්ට්

අරාවෙහි එක් අංගයක් පමණක් තිබේ නම් ධාරාව ක්‍රියා කරයි.
සමීර් ෆවුසාන්


13

මම කරන්නම් echo current($array).


1
shsz කමක් නැත, යොමු current()නොකල විට සම්මත නොවේ. දර්ශකය තවමත් ආරම්භයේ සිටම ක්‍රියාත්මක වන බව සපයා ඇත.
ඩෑන් ලග්

නමුත් එය ඔබේ ල logs ු-සටහන් අපිරිසිදු හා හොඳ බවට පත් කරන නිවේදනයක් නිකුත් කරයි ... ඒවා විවේචනාත්මක නොවන්නේ නම් ඔබ ඒවා ඉවත් කළ යුතුය
dmikam

1
mdmikam නැත එය එසේ නොවේ. සත්‍ය වශයෙන්ම reset"විචල්‍යයන් පමණක් යොමු කිරීමෙන් සම්මත කළ යුතුය" යන දැන්වීම නිකුත් currentකරයි: සබැඳි PHP සංස්කාරක උදාහරණයcurrent(array_filter(...)); .
සීපීඑච්පයිතන්

@CPHPython, ඔබ නිවැරදියි වගේ පෙනේ ... PHP 4 හි පැරණි කාලයේ සිටම ධාරාව පිළිබඳ මෙම අදහස මා හට ඇති බව පෙනේ, එය සැබවින්ම මාරාන්තික දෝෂයක් ඇති කරයි: sandbox.onlinephpfunctions.com/code/… ධාරාව භාවිතා කිරීමේදී මා දකින එකම ගැටළුව ආපසු ලබා දුන් මූලද්‍රව්‍යය අරාවෙහි පළමු අංගය බවට එය සහතික නොවන බව (අභ්‍යන්තර දර්ශකය හැඳින්වෙන ශ්‍රිතය මගින් වෙනස් කළ හැකිය). සැබවින්ම එය අරාවක අහඹු මූලද්‍රව්‍යය නැවත ලබා දිය හැකිය.
dmikam

1
@CPHPython ඒ කෘතිම උදාහරණයක් දෂ්ට, නමුත් එය මනා ලෙස මගේ සිතුවිලි පෙන්නුම්: sandbox.onlinephpfunctions.com/code/... ඔයා භාවිතා කරන සමහර උත්සවය ඔබේ මාලාවක් ලැබෙන හිතාගන්න next(), end()හෝ වෙනත් ඕනෑම උත්සවයකට නව්යන මාලාවක් අභ්යන්තර පහිටුම් දක්වනය බව. මගේ උදාහරණයේ දී, current()අභ්‍යන්තර දර්ශකය අරාවෙහි පරාසයෙන් බැහැර බැවින් ශුන්‍ය වේ. නමුත් එය ඕනෑම / අහඹු මූලද්‍රව්‍යයකට 'පාහේ' යොමු කරයි.
dmikam

12
$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
foreach($arr as $first) break;
echo $first;

ප්‍රතිදානය:

apple

9
$myArray = array (4 => 'apple', 7 => 'orange', 13 => 'plum');
$arrayKeys = array_keys($myArray);

// The first element of your array is:
echo $myArray[$arrayKeys[0]];

පිළිගත් පිළිතුරේ විස්තර කර ඇති ආකාරයට මම ගියේ නැත. ඔබගේ ස්තූතියි භාවිතා කළා
ජයකන්දරි

8
$array=array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );

$firstValue = each($array)[1];

ශ්‍රිතය සමස්ත අරාව පිටපත් නොකරන array_values()නිසා මෙය වඩා කාර්යක්ෂම each()වේ.

වැඩි විස්තර සඳහා http://www.php.net/manual/en/function.each.php බලන්න


because the each() function does not copy the entire array.+1

2
නමුත් කාරණය නම් ඔබ මීට පෙර යළි පිහිටුවීම කළ යුතුය, අභ්‍යන්තර දර්ශකය ආරම්භයේ නොමැති නම් ඔබ පළමු අංගය ලබා නොගනී.
කාලෝස් ගොස්

නමුත් සෑම () ටම යොමු දැක්වීමක් ලැබෙනු ඇති අතර මූලික ප්‍රශ්නවල අවශ්‍යතාවය එසේ නොවේ
dmikam

7

විහිළු සහගත ක්‍රමයක් නම්:

$foo = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );

function get_first ($foo) {
    foreach ($foo as $k=>$v){
        return $v;
    }
}

print get_first($foo);

3
අවම වශයෙන් ඔබ අවංකයි - එය විහිළුවක්! නමුත්, එය ක්‍රියාත්මක වන අතර, ඉහත ලැයිස්තු () තාක්ෂණය ඉගෙන ගන්නා තෙක් මම එය අතීතයේ භාවිතා කර ඇත්තෙමි.
random_user_name

1
ඔබ මෙය කරන්නේ නම්, කෙසේ හෝ හැඳින්වීමට reset()පෙර අරාව දර්ශකය නැවත සකසා ඇති බැවින් ඔබත් භාවිතා කළ හැකිය foreach.
ටයිසොයිඩ්

7

පළමු අංගය ලබා ගන්න:

array_values($arr)[0]

අවසාන අංගය ලබා ගන්න

array_reverse($arr)[0]

සංඛ්‍යාත්මක යතුරු අරාව_ ප්‍රතිලෝමයෙන් සංරක්ෂණය කර ඇති අතර එමඟින් පළමු අංගය නැවත ලබා දෙනු ඇත. 3v4l.org/2729s
නොවන්න

6

මේවායින් බොහොමයක් වැඩ කරයි! නමුත් ඉක්මන් තනි පේළියක් (අඩු සම්පත්) ඇමතුමක් සඳහා:

$array = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
echo $array[key($array)];

// key($array) -> will return the first key (which is 4 in this example)

මෙය හොඳින් ක්‍රියාත්මක වුවද, කරුණාකර මගේ අමතර පිළිතුර ද බලන්න: https://stackoverflow.com/a/48410351/1804013


5
මෙය භාවිතා කිරීමට සමාන වේ current($array), ඒ සඳහා අරාවෙහි අභ්‍යන්තර දර්ශකය කෙසේ හෝ පළමු මූලද්‍රව්‍යයේ තිබිය යුතුය, එම අවස්ථාවේ දී echo reset($array)වඩාත් සුදුසු වේ.
ටයිසොයිඩ්

Y ටයිසොයිඩ් ඇත්ත වශයෙන්ම ඔබේ යෝජනාව සමඟ මෙහි තවත් පිළිතුරක් ලිවීය , නමුත් ඔහු ඔබේ පැහැදිලි කිරීම මඟ හැරියේය ... ස්තූතියි.
සීපීඑච්පයිතන්

Y ටයිසොයිඩ්: මම ටික වේලාවකින් අමතර පිළිතුරක් / යාවත්කාලීන කිරීමක් කළෙමි
tfont

6

මුල් අරාව වෙනස් නොකර තාවකාලික වස්තූන් නිර්මාණය නොකර සෘජුවම අරාවෙහි පළමු හා අවසාන යතුර ලබා ගැනීම සඳහා PHP 7.3 කාර්යයන් දෙකක් එකතු කළේය :

"PHP 7.3.0 ට පෙර අනුවාද සඳහා මෙම ක්‍රියාකාරීත්වය සැපයීමට ක්‍රම කිහිපයක් තිබේ. Array_keys () භාවිතා කළ හැකි නමුත් එය තරමක් අකාර්යක්ෂම විය හැකිය. යළි පිහිටුවීම () සහ යතුර () භාවිතා කිරීමට ද හැකිය, නමුත් එය අභ්‍යන්තර අරාව දර්ශකය වෙනස් කළ හැකිය. පොලිෆිල් ලෙස ලියා ඇති අභ්‍යන්තර අරාව දර්ශකය වෙනස් නොකරන කාර්යක්ෂම විසඳුමක්: "

<?php
if (!function_exists('array_key_first')) {
    function array_key_first($arr) {
        foreach($arr as $key => $unused) {
            return $key;
        }
        return NULL;
    }
}

if (!function_exists('array_key_last')) {
    function array_key_last($arr) {
        return array_key_first(array_reverse($arr, true));
    }
}
?>

4

මම හිතන්නේ array_values භාවිතා කිරීම මෙහි ඔබේ හොඳම ඔට්ටුව වනු ඇත. 'ඇපල්' ලබා ගැනීම සඳහා එම ශ්‍රිතයේ ප්‍රති result ලයෙන් ඔබට දර්ශක ශුන්‍යයේ අගය ආපසු ලබා දිය හැකිය.


4

මෙය ක්‍රීඩාවට ටිකක් ප්‍රමාදයි, නමුත් මගේ අරාව තුළ ළමයින් ලෙස අරාව අංග අඩංගු ගැටළුවක් මට ඉදිරිපත් කරන ලද අතර එමඟින් පළමු අරාව මූලද්‍රව්‍යයේ සංගීත නිරූපණයක් ලබා ගැනීමට මට නොහැකි විය. විසින් PHP හි භාවිතා current()කාර්යය , මම මේ කළමනාකරණය:

<?php
    $original = array(4 => array('one', 'two'), 7 => array('three', 'four'));
    reset($original);  // to reset the internal array pointer...
    $first_element = current($original);  // get the current element...
?>

මෙම සියලු පිළිතුරුවලට ස්තූතිවන්ත වන අතර, මෙම පිළිතුර ලබා ගැනීමට මට හැකි විය.


4

භාවිත:

$first = array_slice($array, 0, 1);  
$val= $first[0];

පෙරනිමියෙන්, array_sliceයතුරු සංරක්ෂණය නොකරයි, එබැවින් අපට දර්ශකය ලෙස ශුන්‍යව ආරක්ෂිතව භාවිතා කළ හැකිය.


3

ඔබට විසඳුම් දෙකක්.

විසඳුම 1 - යතුර භාවිතා කරන්න. ඔබට එය භාවිතා කළ නොහැකි බව ඔබ පවසා නැත. :)

<?php
    // Get the first element of this array.
    $array = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );

    // Gets the first element by key
    $result = $array[4];

    // Expected result: string apple
    assert('$result === "apple" /* Expected result: string apple. */');
?>

විසඳුම 2 - array_flip () + key ()

<?php
    // Get first element of this array. Expected result: string apple
    $array = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );

    // Turn values to keys
    $array = array_flip($array);

    // You might thrown a reset in just to make sure
    // that the array pointer is at the first element.
    // Also, reset returns the first element.
    // reset($myArray);

    // Return the first key
    $firstKey = key($array);

    assert('$firstKey === "apple" /* Expected result: string apple. */');
?>

විසඳුම 3 - array_keys ()

echo $array[array_keys($array)[0]];

2

මම හිතන්නේ කතුවරයා අරාවෙහි පළමු මූලද්‍රව්‍යය යම් ශ්‍රිතයකින් ලබා ගැනීමෙන් පසුව එය ලබා ගැනීමට ක්‍රමයක් සොයමින් සිටියේය ( mysql_fetch_row , උදාහරණයක් ලෙස) උත්පාදනය නොකර බවයි.

එය එසේ නම්, මෙහි විස්තර කර ඇති සෑම ආකාරයකින්ම පාහේ මෙම පණිවිඩය ලැබෙනු ඇත ... තවද ඔවුන්ගෙන් සමහරක් අරාව (හෝ එහි යම් කොටසක්) අනුපිටපත් කිරීම සඳහා අමතර මතකයක් භාවිතා කරයි. එය වළක්වා ගත හැකි පහසු ක්‍රමයක් නම්, එම කාර්යයන් කිසිවක් ඇමතීමට පෙර පේළියේ අගය ලබා දීම පමණි:

$first_item_of_array = current($tmp_arr = mysql_fetch_row(...));
// or
$first_item_of_array = reset($tmp_arr = func_get_my_huge_array());

මේ ආකාරයෙන් ඔබට තිරයේ හෝ ල logs ු-සටහන් වල STRICT පණිවිඩය නොලැබෙන අතර ඔබ අතිරේක අරා නිර්මාණය නොකරයි. එය සුචිගත කළ සහ අනුබද්ධ අරා සමඟ ක්‍රියා කරයි .


1

array_keys()සංඛ්‍යාත්මක සුචිගත කරන ලද අරාව ලෙස ඔබේ සහායක අරාවේ යතුරු වෙත ප්‍රවේශ වීමට භාවිතා කරන්න , එය නැවත අරාව සඳහා යතුර ලෙස භාවිතා කළ හැකිය.

විසඳුම විටarr[0] :

(සටහන, යතුරු සමඟ අරාව 0 පාදක දර්ශකයක් බැවින් 1 වන මූලද්‍රව්‍යය දර්ශක 0 වේ)

ඔබේ තර්කය ලබා ගැනීම සඳහා ඔබට විචල්‍යයක් භාවිතා කර එකක් අඩු කළ හැකිය 1 => 'apple'.

$i = 1;
$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
echo $arr[array_keys($arr)[$i-1]];

ප්‍රතිදානය:

apple

හොඳයි, සරල බව සඳහා- භාවිතා කරන්න:

$arr = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
echo $arr[array_keys($arr)[0]];

ප්‍රතිදානය:

apple

පළමු ක්‍රමය මඟින් පළමු මූලද්‍රව්‍යය පමණක් නොව, සුචිගත කරන ලද අරාවක් වැනි සහායක අරාවකට ප්‍රතිකාර කළ හැකිය.


1

අරාවෙහි අභ්‍යන්තර දර්ශකය සමඟ ගැටගැසීමට මා කැමති නැත, නමුත් එය සමඟ දෙවන අරාව සෑදීම array_keys()හෝ අකාර්යක්ෂම වේ array_values(), එබැවින් මම සාමාන්‍යයෙන් මෙය අර්ථ දක්වන්නෙමි:

function array_first(array $f) {
    foreach ($f as $v) {
        return $v;
    }
    throw new Exception('array was empty');
}


1

ArrayIterator පන්තිය භාවිතා කිරීමට කිසිවෙකු යෝජනා කර නැත:

$array = array( 4 => 'apple', 7 => 'orange', 13 => 'plum' );
$first_element = (new ArrayIterator($array))->current();
echo $first_element; //'apple'

OP හි සමුද්දේශ නියමයන් අනුව ය.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.