Array
Array
Array ¶
Sebuah array di
PHP sebenarnya adalah peta yang dipesan. Peta adalah jenis yang
menghubungkan nilai ke kunci . Jenis ini
dioptimalkan untuk beberapa kegunaan yang berbeda; Ini dapat diperlakukan
sebagai array, daftar (vektor), tabel hash (implementasi peta), kamus, koleksi,
tumpukan, antrian, dan mungkin lebih. Sebagai nilai array dapat array lain
s, pohon danarray multidimensi
s juga mungkin.
Penjelasan tentang struktur data tersebut berada di luar
cakupan manual ini, namun setidaknya satu contoh disediakan untuk masing-masing
metode tersebut. Untuk informasi lebih lanjut, lihatlah literatur yang ada
tentang topik yang luas ini.
Sintaksis ¶
Sebuah array dapat
dibuat dengan menggunakan array
() membangun bahasa. Dibutuhkan sejumlah pasangan nilai koma =kunci
yang dipisahkan koma sebagai argumen.
array (
key => nilai ,
key2 => value2 ,
key3 => value3 ,
...
)
Perintah koma setelah elemen array terakhir bersifat
opsional dan dapat diabaikan. Hal ini biasanya dilakukan untuk array
single-line, yaitu array (1, 2) lebih disukai daripada array
(1, 2,) . Untuk array multi-line di sisi lain koma trailing
biasanya digunakan, karena memungkinkan penambahan elemen baru yang lebih mudah
di akhir.
Seperti pada PHP 5.4 Anda juga bisa menggunakan sintaks
array pendek, yang menggantikan array () dengan [] .
Contoh # 1 Sebuah array sederhana
<?php
$array = array(
"foo" => "bar" ,
"bar" => "foo" ,
);
// as of PHP 5.4
$array = [
"foo" => "bar" ,
"bar" => "foo" ,
];
?>
$array = array(
"foo" => "bar" ,
"bar" => "foo" ,
);
// as of PHP 5.4
$array = [
"foo" => "bar" ,
"bar" => "foo" ,
];
?>
Selain itu, guncangan kunci berikut akan terjadi:
- String s
berisi bilangan desimal
desimal yang valid, kecuali jika nomor didahului dengan tanda + ,
akan dilemparkan ke tipeinteger . Misalnya
tombol "8" sebenarnya akan disimpan di bawah 8 . Di
sisi lain "08" tidak akan dilemparkan, karena
ini bukan bilangan bulat desimal yang valid.
- Float s
juga dilemparkan ke integer s,
yang berarti bagian pecahan akan terpotong. Misalnya tombol 8.7 benar-benar
akan disimpan di bawah 8 .
- Bool s
dilemparkan ke integer s
juga, yaitu kunci true sebenarnya akan disimpan di bawah 1 dan
tombol false di bawah 0 .
- Null akan
dilemparkan ke string kosong, yaitu null kunci sebenarnya
akan disimpan di bawah "" .
- Array s
dan objek s tidak dapat
digunakan sebagai kunci. Melakukan hal tersebut akan menghasilkan
peringatan: Tipe offset ilegal .
Jika beberapa elemen dalam deklarasi array menggunakan kunci
yang sama, hanya satu yang terakhir akan digunakan karena semua yang lain
ditimpa.
Contoh # 2 contoh Casting dan Overwriting Tipe
<?php
$array = array(
1 => "a" ,
"1" => "b" ,
1.5 => "c" ,
true => "d" ,
);
var_dump ( $array );
?>
$array = array(
1 => "a" ,
"1" => "b" ,
1.5 => "c" ,
true => "d" ,
);
var_dump ( $array );
?>
Contoh di atas akan menampilkan:
array (1) {
[1] =>
string (1) "d"
}
Karena semua kunci pada contoh di atas dilemparkan ke 1 ,
nilainya akan ditimpa pada setiap elemen baru dan nilai yang ditetapkan
terakhir "d" adalah satu-satunya yang tersisa.
Array PHP dapat berisi bilangan
bulat dan tombol string bersamaan
dengan PHP tidak membedakan antara array yang diindeks dan asosiatif.
<?php
$array = array(
"foo" => "bar" ,
"bar" => "foo" ,
100 => - 100 ,
- 100 => 100 ,
);
var_dump ( $array );
?>
$array = array(
"foo" => "bar" ,
"bar" => "foo" ,
100 => - 100 ,
- 100 => 100 ,
);
var_dump ( $array );
?>
Contoh di atas akan menampilkan:
array (4) {
["foo"] =>
string (3) "bar"
["bar"] =>
string (3) "foo"
[100] =>
int (-100)
[-100] =>
int (100)
}
Kuncinya adalah opsional. Jika tidak ditentukan,
PHP akan menggunakan kenaikan kunci bilangan
bulat terbesar yang pernah digunakan.
Contoh # 4 Indexed array tanpa kunci
<?php
$array = array( "foo" , "bar" , "hello" , "world" );
var_dump ( $array );
?>
$array = array( "foo" , "bar" , "hello" , "world" );
var_dump ( $array );
?>
Contoh di atas akan menampilkan:
array (4) {
[0] =>
string (3) "foo"
[1] =>
string (3) "bar"
[2] =>
string (5) "halo"
[3] =>
string (5) "dunia"
}
Hal ini dimungkinkan untuk menentukan kunci hanya untuk
beberapa elemen dan membiarkannya keluar untuk orang lain:
Contoh # 5 Tombol tidak pada semua elemen
<?php
$array = array(
"a" ,
"b" ,
6 => "c" ,
"d" ,
);
var_dump ( $array );
?>
$array = array(
"a" ,
"b" ,
6 => "c" ,
"d" ,
);
var_dump ( $array );
?>
Contoh di atas akan menampilkan:
array (4) {
[0] =>
string (1) "a"
[1] =>
string (1) "b"
[6] =>
string (1) "c"
[7] =>
string (1) "d"
}
Seperti yang Anda lihat, nilai terakhir "d" diberi
tombol 7 . Ini karena kunci bilangan bulat terbesar
sebelum itu adalah 6 .
Mengakses elemen array dengan sintaks braket persegi ¶
Array elemen dapat diakses menggunakan array [key] syntax.
Contoh # 6 Mengakses elemen array
<?php
$array = array(
"foo" => "bar" ,
42 => 24 ,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
);
var_dump ( $array [ "foo" ]);
var_dump ( $array [ 42 ]);
var_dump ( $array [ "multi" ][ "dimensional" ][ "array" ]);
?>
$array = array(
"foo" => "bar" ,
42 => 24 ,
"multi" => array(
"dimensional" => array(
"array" => "foo"
)
)
);
var_dump ( $array [ "foo" ]);
var_dump ( $array [ 42 ]);
var_dump ( $array [ "multi" ][ "dimensional" ][ "array" ]);
?>
Contoh di atas akan menampilkan:
string (3)
"bar"
int (24)
string (3)
"foo"
Catatan :
Kedua kurung siku dan kurung kurawal dapat digunakan secara
bergantian untuk mengakses elemen array (misalnya $ array [42] dan $
array {42} keduanya akan melakukan hal yang sama pada contoh di atas).
Seperti pada PHP 5.4 dimungkinkan untuk array dereference
hasil fungsi atau metode call secara langsung. Sebelum itu hanya mungkin
menggunakan variabel sementara.
Pada PHP 5.5, dimungkinkan untuk array dereference array
literal.
Contoh # 7 Array dereferencing
<?php
function getArray () {
return array( 1 , 2 , 3 );
}
// on PHP 5.4
$secondElement = getArray ()[ 1 ];
// previously
$tmp = getArray ();
$secondElement = $tmp [ 1 ];
// or
list(, $secondElement ) = getArray ();
?>
function getArray () {
return array( 1 , 2 , 3 );
}
// on PHP 5.4
$secondElement = getArray ()[ 1 ];
// previously
$tmp = getArray ();
$secondElement = $tmp [ 1 ];
// or
list(, $secondElement ) = getArray ();
?>
Catatan :
Mencoba mengakses kunci array yang belum didefinisikan sama
dengan mengakses variabel undefined lainnya: pesan kesalahan tingkat E_NOTICE akan
dikeluarkan, dan hasilnya adalah NULL .
Catatan :
Array dereferencing nilai skalar yang bukan string diam-diam
menghasilkan NULL , yaitu tanpa mengeluarkan pesan kesalahan.
Membuat / memodifikasi dengan sintaks braket persegi ¶
Array
yang ada dapat dimodifikasi dengan menetapkan secara eksplisit
nilai-nilai di dalamnya.
Hal ini dilakukan dengan menetapkan nilai pada array ,
menentukan kunci dalam tanda kurung. Kuncinya juga bisa dihilangkan,
sehingga menghasilkan sepasang kurung kosong ( [] ).
$ arr [ kunci ] = nilai
;
$ arr [] = nilai ;
// nilai dapat berupa
nilai dari jenis apa pun
Jika $ arr belum ada, maka akan dibuat, jadi ini
juga cara alternatif untuk membuat array . Namun
praktik ini berkecil hati karena jika $ arr sudah mengandung beberapa
nilai (misalnya string dari
variabel permintaan) maka nilai ini akan tetap berada di tempat itu dan [] mungkin
benar-benar berdiri untuk operator
akses string . Selalu lebih baik menginisialisasi variabel dengan
tugas langsung.
Catatan : Seperti pada PHP 7.1.0, menerapkan
indeks operator kosong pada string melempar kesalahan fatal.Dahulu, senar itu
diam-diam dikonversi menjadi sebuah array.
Untuk mengubah nilai tertentu, tetapkan nilai baru ke elemen
itu dengan menggunakan kuncinya. Untuk menghapus pasangan kunci / nilai,
hubungi fungsi unset
() di atasnya.
<?php
$arr = array( 5 => 1 , 12 => 2 );
$arr [] = 56 ; // This is the same as $arr[13] = 56;
// at this point of the script
$arr [ "x" ] = 42 ; // This adds a new element to
// the array with key "x"
unset( $arr [ 5 ]); // This removes the element from the array
unset( $arr ); // This deletes the whole array
?>
$arr = array( 5 => 1 , 12 => 2 );
$arr [] = 56 ; // This is the same as $arr[13] = 56;
// at this point of the script
$arr [ "x" ] = 42 ; // This adds a new element to
// the array with key "x"
unset( $arr [ 5 ]); // This removes the element from the array
unset( $arr ); // This deletes the whole array
?>
Catatan :
Seperti disebutkan di atas, jika tidak ada kunci yang
ditentukan, maksimum indeks integer
yang ada diambil, dan kunci baru adalah nilai maksimum ditambah 1
(tapi setidaknya 0). Jika tidak ada indeks bilangan
bulat yang ada, kuncinya adalah 0 (nol).
Perhatikan bahwa kunci bilangan bulat maksimum yang
digunakan untuk kebutuhan ini saat ini tidak ada dalamarray . Itu
hanya perlu ada dalam array pada
beberapa waktu sejak terakhir kali array itu
diindeks ulang. Contoh berikut menggambarkan:
<?php
// Create a simple array.
$array = array( 1 , 2 , 3 , 4 , 5 );
print_r ( $array );
// Now delete every item, but leave the array itself intact:
foreach ( $array as $i => $value ) {
unset( $array [ $i ]);
}
print_r ( $array );
// Append an item (note that the new key is 5, instead of 0).
$array [] = 6 ;
print_r ( $array );
// Re-index:
$array = array_values ( $array );
$array [] = 7 ;
print_r ( $array );
?>
// Create a simple array.
$array = array( 1 , 2 , 3 , 4 , 5 );
print_r ( $array );
// Now delete every item, but leave the array itself intact:
foreach ( $array as $i => $value ) {
unset( $array [ $i ]);
}
print_r ( $array );
// Append an item (note that the new key is 5, instead of 0).
$array [] = 6 ;
print_r ( $array );
// Re-index:
$array = array_values ( $array );
$array [] = 7 ;
print_r ( $array );
?>
Contoh di atas akan menampilkan:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
)
Array
(
[5] => 6
)
Array
(
[0] => 6
[1] => 7
)
Fungsi yang berguna ¶
Ada beberapa fungsi berguna untuk bekerja dengan array. Lihat
bagian fungsi
array .
Catatan :
Unset
() fungsi memungkinkan menghapus kunci dari array . Sadarilah
bahwa array tidak akan diindeks ulang. Jika perilaku
"hapus dan pergeseran" yang benar diinginkan, array dapat diindeks ulang
dengan menggunakan fungsiarray_values
() .
<?php
$a = array( 1 => 'one' , 2 => 'two' , 3 => 'three' );
unset( $a [ 2 ]);
/* will produce an array that would have been defined as
$a = array(1 => 'one', 3 => 'three');
and NOT
$a = array(1 => 'one', 2 =>'three');
*/
$b = array_values ( $a );
// Now $b is array(0 => 'one', 1 =>'three')
?>
$a = array( 1 => 'one' , 2 => 'two' , 3 => 'three' );
unset( $a [ 2 ]);
/* will produce an array that would have been defined as
$a = array(1 => 'one', 3 => 'three');
and NOT
$a = array(1 => 'one', 2 =>'three');
*/
$b = array_values ( $a );
// Now $b is array(0 => 'one', 1 =>'three')
?>
Struktur kontrol foreach ada
secara khusus untuk array s. Ini
menyediakan cara mudah untuk melintasi sebuah array .
Array lakukan dan jangan dilakukan ¶
Mengapa $ foo [bar] salah? ¶
Selalu gunakan tanda kutip di sekitar indeks array literal
liter. Misalnya, $ foo ['bar'] benar, sedangkan $
foo [bar] tidak. Tapi kenapa? Adalah umum untuk menemukan
sintaks semacam ini dalam skrip lama:
<?php
$foo [ bar ] = 'enemy' ;
echo $foo [ bar ];
// etc
?>
$foo [ bar ] = 'enemy' ;
echo $foo [ bar ];
// etc
?>
Ini salah, tapi berhasil. Alasannya adalah bahwa kode
ini memiliki konstanta undefined ( bar ) dan bukan string ( 'bar' -
perhatikan tanda kutip). Ia bekerja karena PHP secara otomatis mengubah string
telanjang ( string tak
dikenal yang tidak sesuai dengan simbol yang diketahui) ke dalam string yang
berisi string telanjang. Misalnya,
jika tidak ada bar dinamik yang didefinisikan, maka PHP akan
menggantikan string 'bar' dan
menggunakannya.
Catatan : Ini tidak berarti selalu mengutip
kuncinya. Jangan mengutip kunci yang merupakan konstanta atauvariabel ,
karena ini akan mencegah PHP menafsirkannya.
<?php
error_reporting ( E_ALL );
ini_set ( 'display_errors' , true );
ini_set ( 'html_errors' , false );
// Simple array:
$array = array( 1 , 2 );
$count = count ( $array );
for ( $i = 0 ; $i < $count ; $i ++) {
echo "\nChecking $i : \n" ;
echo "Bad: " . $array [ '$i' ] . "\n" ;
echo "Good: " . $array [ $i ] . "\n" ;
echo "Bad: { $array [ '$i' ]} \n" ;
echo "Good: { $array [ $i ]} \n" ;
}
?>
error_reporting ( E_ALL );
ini_set ( 'display_errors' , true );
ini_set ( 'html_errors' , false );
// Simple array:
$array = array( 1 , 2 );
$count = count ( $array );
for ( $i = 0 ; $i < $count ; $i ++) {
echo "\nChecking $i : \n" ;
echo "Bad: " . $array [ '$i' ] . "\n" ;
echo "Good: " . $array [ $i ] . "\n" ;
echo "Bad: { $array [ '$i' ]} \n" ;
echo "Good: { $array [ $i ]} \n" ;
}
?>
Contoh di atas akan menampilkan:
Memeriksa 0:
Perhatikan: Indeks
yang tidak ditentukan: $ i in /path/to/script.html on line 9
Buruk:
Bagus: 1
Perhatikan: Indeks
yang tidak ditentukan: $ i in /path/to/script.html on line 11
Buruk:
Bagus: 1
Memeriksa 1:
Perhatikan: Indeks
yang tidak ditentukan: $ i in /path/to/script.html on line 9
Buruk:
Bagus: 2
Perhatikan: Indeks
yang tidak ditentukan: $ i in /path/to/script.html on line 11
Buruk:
Bagus: 2
Lebih banyak contoh untuk menunjukkan perilaku ini:
<?php
// Show all errors
error_reporting ( E_ALL );
$arr = array( 'fruit' => 'apple' , 'veggie' => 'carrot' );
// Correct
print $arr [ 'fruit' ]; // apple
print $arr [ 'veggie' ]; // carrot
// Incorrect. This works but also throws a PHP error of level E_NOTICE because
// of an undefined constant named fruit
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr [ fruit ]; // apple
// This defines a constant to demonstrate what's going on. The value 'veggie'
// is assigned to a constant named fruit.
define ( 'fruit' , 'veggie' );
// Notice the difference now
print $arr [ 'fruit' ]; // apple
print $arr [ fruit ]; // carrot
// The following is okay, as it's inside a string. Constants are not looked for
// within strings, so no E_NOTICE occurs here
print "Hello $arr [ fruit ] " ; // Hello apple
// With one exception: braces surrounding arrays within strings allows constants
// to be interpreted
print "Hello { $arr [ fruit ]} " ; // Hello carrot
print "Hello { $arr [ 'fruit' ]} " ; // Hello apple
// This will not work, and will result in a parse error, such as:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// This of course applies to using superglobals in strings as well
print "Hello $arr [ 'fruit']" ;
print "Hello $_GET [ 'foo']" ;
// Concatenation is another option
print "Hello " . $arr [ 'fruit' ]; // Hello apple
?>
// Show all errors
error_reporting ( E_ALL );
$arr = array( 'fruit' => 'apple' , 'veggie' => 'carrot' );
// Correct
print $arr [ 'fruit' ]; // apple
print $arr [ 'veggie' ]; // carrot
// Incorrect. This works but also throws a PHP error of level E_NOTICE because
// of an undefined constant named fruit
//
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr [ fruit ]; // apple
// This defines a constant to demonstrate what's going on. The value 'veggie'
// is assigned to a constant named fruit.
define ( 'fruit' , 'veggie' );
// Notice the difference now
print $arr [ 'fruit' ]; // apple
print $arr [ fruit ]; // carrot
// The following is okay, as it's inside a string. Constants are not looked for
// within strings, so no E_NOTICE occurs here
print "Hello $arr [ fruit ] " ; // Hello apple
// With one exception: braces surrounding arrays within strings allows constants
// to be interpreted
print "Hello { $arr [ fruit ]} " ; // Hello carrot
print "Hello { $arr [ 'fruit' ]} " ; // Hello apple
// This will not work, and will result in a parse error, such as:
// Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'
// This of course applies to using superglobals in strings as well
print "Hello $arr [ 'fruit']" ;
print "Hello $_GET [ 'foo']" ;
// Concatenation is another option
print "Hello " . $arr [ 'fruit' ]; // Hello apple
?>
Saat error_reporting diatur
untuk menunjukkan kesalahan tingkat E_NOTICE (dengan
menyetelnya ke E_ALL , misalnya), penggunaan seperti itu akan
segera terlihat. Secara default, error_reporting diatur
untuk tidak menampilkan pemberitahuan.
Seperti yang dinyatakan di bagian sintaks ,
apa yang ada di dalam tanda kurung siku (' [ ' dan ' ] ')
harus menjadi ungkapan. Ini berarti kode seperti ini bekerja:
<?php
echo $arr [ somefunc ( $bar )];
?>
echo $arr [ somefunc ( $bar )];
?>
Ini adalah contoh penggunaan fungsi return value sebagai
indeks array. PHP juga tahu tentang konstanta:
<?php
$error_descriptions [ E_ERROR ] = "A fatal error has occurred" ;
$error_descriptions [ E_WARNING ] = "PHP issued a warning" ;
$error_descriptions [ E_NOTICE ] = "This is just an informal notice" ;
?>
$error_descriptions [ E_ERROR ] = "A fatal error has occurred" ;
$error_descriptions [ E_WARNING ] = "PHP issued a warning" ;
$error_descriptions [ E_NOTICE ] = "This is just an informal notice" ;
?>
Perhatikan bahwa E_ERROR juga merupakan
identifier yang valid, sama seperti bar pada contoh pertama. Tapi
contoh terakhir sebenarnya sama dengan menulis:
<?php
$error_descriptions [ 1 ] = "A fatal error has occurred" ;
$error_descriptions [ 2 ] = "PHP issued a warning" ;
$error_descriptions [ 8 ] = "This is just an informal notice" ;
?>
$error_descriptions [ 1 ] = "A fatal error has occurred" ;
$error_descriptions [ 2 ] = "PHP issued a warning" ;
$error_descriptions [ 8 ] = "This is just an informal notice" ;
?>
karena E_ERROR sama dengan 1 ,
dll.
Jadi mengapa itu buruk?
Pada beberapa titik di masa depan, tim PHP mungkin ingin
menambahkan kata kunci atau kata kunci lain, atau kode yang konstan dalam kode
lainnya dapat mengganggu. Misalnya, sudah salah menggunakan kata-kata kosong dan default seperti
ini, karena kata
kunci tersebut sudah dicadangkan .
Catatan : Untuk mengulangi, di dalam string
yang dikutip ganda, ini berlaku untuk tidak mengelilingi indeks array
dengan tanda petik jadi "$ foo [bar]" valid. Lihat
contoh di atas untuk rincian mengapa serta bagian tentangpenguraian
variabel dalam string .
Mengkonversi ke array ¶
Untuk tipe integer , float , string , boolean dan resource ,
mengubah nilai ke array menghasilkan
array dengan satu elemen dengan indeks nol dan nilai skalar yang dikonversi. Dengan
kata lain, (array) $ scalarValue sama persis dengan array
($ scalarValue) .
Jika sebuah objek dikonversi
ke array ,
hasilnya adalah array yang
elemennya adalah properti objek. Kuncinya adalah nama variabel anggota,
dengan beberapa pengecualian: properti bilangan bulat tidak dapat diakses; variabel
privat memiliki nama kelas yang ditambahkan ke nama variabel; variabel
yang dilindungi memiliki '*' yang ditambahkan ke nama variabel. Nilai
prepended ini memiliki byte nol di kedua sisi. Hal ini dapat mengakibatkan
beberapa perilaku tak terduga:
<?php
class A {
private $A ; // This will become '\0A\0A'
}
class B extends A {
private $A ; // This will become '\0B\0A'
public $AA ; // This will become 'AA'
}
var_dump ((array) new B ());
?>
class A {
private $A ; // This will become '\0A\0A'
}
class B extends A {
private $A ; // This will become '\0B\0A'
public $AA ; // This will become 'AA'
}
var_dump ((array) new B ());
?>
Di atas akan muncul dua kunci bernama 'AA', meski salah
satunya sebenarnya bernama '\ 0A \ 0A'.
Perbandingan ¶
Hal ini dimungkinkan untuk membandingkan array dengan fungsi array_diff
() dan dengan operator
array .
Contoh ¶
Tipe array di PHP sangat serbaguna. Berikut adalah
beberapa contohnya:
<?php
// This:
$a = array( 'color' => 'red' ,
'taste' => 'sweet' ,
'shape' => 'round' ,
'name' => 'apple' ,
4 // key will be 0
);
$b = array( 'a' , 'b' , 'c' );
// . . .is completely equivalent with this:
$a = array();
$a [ 'color' ] = 'red' ;
$a [ 'taste' ] = 'sweet' ;
$a [ 'shape' ] = 'round' ;
$a [ 'name' ] = 'apple' ;
$a [] = 4 ; // key will be 0
$b = array();
$b [] = 'a' ;
$b [] = 'b' ;
$b [] = 'c' ;
// After the above code is executed, $a will be the array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), and $b will be the array
// array(0 => 'a', 1 => 'b', 2 => 'c'), or simply array('a', 'b', 'c').
?>
// This:
$a = array( 'color' => 'red' ,
'taste' => 'sweet' ,
'shape' => 'round' ,
'name' => 'apple' ,
4 // key will be 0
);
$b = array( 'a' , 'b' , 'c' );
// . . .is completely equivalent with this:
$a = array();
$a [ 'color' ] = 'red' ;
$a [ 'taste' ] = 'sweet' ;
$a [ 'shape' ] = 'round' ;
$a [ 'name' ] = 'apple' ;
$a [] = 4 ; // key will be 0
$b = array();
$b [] = 'a' ;
$b [] = 'b' ;
$b [] = 'c' ;
// After the above code is executed, $a will be the array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round',
// 'name' => 'apple', 0 => 4), and $b will be the array
// array(0 => 'a', 1 => 'b', 2 => 'c'), or simply array('a', 'b', 'c').
?>
Contoh # 8 Menggunakan array ()
<?php
// Array as (property-)map
$map = array( 'version' => 4 ,
'OS' => 'Linux' ,
'lang' => 'english' ,
'short_tags' => true
);
// strictly numerical keys
$array = array( 7 ,
8 ,
0 ,
156 ,
- 10
);
// this is the same as array(0 => 7, 1 => 8, ...)
$switching = array( 10 , // key = 0
5 => 6 ,
3 => 7 ,
'a' => 4 ,
11 , // key = 6 (maximum of integer-indices was 5)
'8' => 2 , // key = 8 (integer!)
'02' => 77 , // key = '02'
0 => 12 // the value 10 will be overwritten by 12
);
// empty array
$empty = array();
?>
// Array as (property-)map
$map = array( 'version' => 4 ,
'OS' => 'Linux' ,
'lang' => 'english' ,
'short_tags' => true
);
// strictly numerical keys
$array = array( 7 ,
8 ,
0 ,
156 ,
- 10
);
// this is the same as array(0 => 7, 1 => 8, ...)
$switching = array( 10 , // key = 0
5 => 6 ,
3 => 7 ,
'a' => 4 ,
11 , // key = 6 (maximum of integer-indices was 5)
'8' => 2 , // key = 8 (integer!)
'02' => 77 , // key = '02'
0 => 12 // the value 10 will be overwritten by 12
);
// empty array
$empty = array();
?>
Contoh # 9 Koleksi
<?php
$colors = array( 'red' , 'blue' , 'green' , 'yellow' );
foreach ( $colors as $color ) {
echo "Do you like $color ?\n" ;
}
?>
$colors = array( 'red' , 'blue' , 'green' , 'yellow' );
foreach ( $colors as $color ) {
echo "Do you like $color ?\n" ;
}
?>
Contoh di atas akan menampilkan:
Apakah kamu suka
merah?
Apakah kamu suka biru
Apakah kamu suka
hijau
Apakah kamu suka
kuning
Mengubah nilai array secara
langsung dimungkinkan dengan cara mengirimkannya melalui referensi.
Contoh # 10 Mengubah elemen dalam lingkaran
<?php
foreach ( $colors as & $color ) {
$color = strtoupper ( $color );
}
unset( $color ); /* ensure that following writes to
$color will not modify the last array element */
print_r ( $colors );
?>
foreach ( $colors as & $color ) {
$color = strtoupper ( $color );
}
unset( $color ); /* ensure that following writes to
$color will not modify the last array element */
print_r ( $colors );
?>
Contoh di atas akan menampilkan:
Array
(
[0] => MERAH
[1] => BIRU
[2] => HIJAU
[3] => KUNING
)
Contoh ini menciptakan array berbasis-satu.
Contoh # 11 Satu indeks berbasis
<?php
$firstquarter = array( 1 => 'January' , 'February' , 'March' );
print_r ( $firstquarter );
?>
$firstquarter = array( 1 => 'January' , 'February' , 'March' );
print_r ( $firstquarter );
?>
Contoh di atas akan menampilkan:
Array
(
[1] => 'Januari'
[2] => 'Februari'
[3] => 'Maret'
)
Contoh # 12 Mengisi sebuah array
<?php
// fill an array with all items from a directory
$handle = opendir ( '.' );
while ( false !== ( $file = readdir ( $handle ))) {
$files [] = $file ;
}
closedir ( $handle );
?>
// fill an array with all items from a directory
$handle = opendir ( '.' );
while ( false !== ( $file = readdir ( $handle ))) {
$files [] = $file ;
}
closedir ( $handle );
?>
Array s
diperintahkan. Perintah bisa diubah dengan menggunakan berbagai fungsi
pemilahan. Lihat bagian fungsi
array untuk informasi lebih lanjut. Fungsi count
() dapat digunakan untuk menghitung jumlah item dalam sebuah array .
Contoh # 13 Menyortir sebuah array
<?php
sort ( $files );
print_r ( $files );
?>
sort ( $files );
print_r ( $files );
?>
Karena nilai sebuah array bisa
apa saja, itu juga bisa jadi array lain. Hal
ini memungkinkan pembuatan array rekursif
dan multi-dimensi s.
Contoh # 14 array rekursif dan multi-dimensi
<?php
$fruits = array ( "fruits" => array ( "a" => "orange" ,
"b" => "banana" ,
"c" => "apple"
),
"numbers" => array ( 1 ,
2 ,
3 ,
4 ,
5 ,
6
),
"holes" => array ( "first" ,
5 => "second" ,
"third"
)
);
// Some examples to address values in the array above
echo $fruits [ "holes" ][ 5 ]; // prints "second"
echo $fruits [ "fruits" ][ "a" ]; // prints "orange"
unset( $fruits [ "holes" ][ 0 ]); // remove "first"
// Create a new multi-dimensional array
$juices [ "apple" ][ "green" ] = "good" ;
?>
$fruits = array ( "fruits" => array ( "a" => "orange" ,
"b" => "banana" ,
"c" => "apple"
),
"numbers" => array ( 1 ,
2 ,
3 ,
4 ,
5 ,
6
),
"holes" => array ( "first" ,
5 => "second" ,
"third"
)
);
// Some examples to address values in the array above
echo $fruits [ "holes" ][ 5 ]; // prints "second"
echo $fruits [ "fruits" ][ "a" ]; // prints "orange"
unset( $fruits [ "holes" ][ 0 ]); // remove "first"
// Create a new multi-dimensional array
$juices [ "apple" ][ "green" ] = "good" ;
?>
Array tugas
selalu melibatkan nilai menyalin. Gunakan operator
referensi untuk menyalin array dengan
referensi.
<?php
$arr1 = array( 2 , 3 );
$arr2 = $arr1 ;
$arr2 [] = 4 ; // $arr2 is changed,
// $arr1 is still array(2, 3)
$arr3 = & $arr1 ;
$arr3 [] = 4 ; // now $arr1 and $arr3 are the same
?>
$arr1 = array( 2 , 3 );
$arr2 = $arr1 ;
$arr2 [] = 4 ; // $arr2 is changed,
// $arr1 is still array(2, 3)
$arr3 = & $arr1 ;
$arr3 [] = 4 ; // now $arr1 and $arr3 are the same
?>
Sumber :
https://goo.gl/images/6Jed9e

Komentar
Posting Komentar