Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ индСкс Π² массивС php

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° массив, Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ элСмСнтов ΠΈ Π½Π° пустоту Π² PHP

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ индСкс Π² массивС php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ индСкс Π² массивС php. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ индСкс Π² массивС php. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ индСкс Π² массивС php. Π€ΠΎΡ‚ΠΎ Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π»ΠΈ индСкс Π² массивС php

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ массива. Π’ Ρ‚ΠΎΠΌ числС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ являСтся Π»ΠΈ пСрСмСнная массивом, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ массива пустыС значСния. Π‘ΡƒΠ΄Π΅ΠΌ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ простого ΠΊ Π±ΠΎΠ»Π΅Π΅ слоТному. И ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° массив. Для этого Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ΅Ρ‚ встроСнная Π² язык PHP функция is_array. Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

$arr = [‘id’, ‘name’, ’email’]; // Массив элСмСнтов if(is_array($arr))< echo 'Π­Ρ‚ΠΎ массив'; >else

Ѐункция Π²Π΅Ρ€Π½Π΅Ρ‚ true, Ссли это массив ΠΈ false β€” Ссли Π½Π΅ массив. Π­Ρ‚ΠΎ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ слоТностСй Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° массива Π½Π° пустоту ΠΈ пустыС элСмСнты Π² PHP

Ѐункция empty сработаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π² массивС Π½Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… элСмСнтов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΅Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ массивов. Π’ этом случаС Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° функция β€” array_diff. Π‘ Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ сравним исходный массив с Π΄Ρ€ΡƒΠ³ΠΈΠΌ массивом ΠΈ Π² случаС расхоТдСния Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ элСмСнты массива, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ сумбурно ΠΈ Π½Π΅ понятно, Π½ΠΎ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

array(8) < [0]=>string(4) «name» [1]=> string(0) «» [2]=> string(3) «num» [3]=> [4]=> string(0) «» [5]=> [6]=> string(4) «Alex» [7]=> string(0) «» > array(3) < [0]=>string(4) «name» [2]=> string(3) «num» [6]=> string(4) «Alex» >

Ѐункция пропустит всС пустыС элСмСнт массива, Π² Ρ‚ΠΎΠΌ числС NULL ΠΈ false ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ. ΠœΡ‹ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ элСмСнт массива Π±Ρ‹Π» пустой с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΠΊΠ»Π° for.

array(4) < ["age"]=>int(34) [«name»]=> string(4) «Ivan» [«city»]=> string(0) «» [«number»]=> string(0) «» > array(2) < ["age"]=>int(34) [«name»]=> string(4) «Ivan» >

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ элСмСнта Π² массивС

Для этих Ρ†Π΅Π»Π΅ΠΉ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ функция in_array. Она провСряСт Π½Π° присутствиС Π² массивС значСния.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ β€” Π³Π΄Π΅. На этом ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½. НадСюсь, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π² Π½Π΅ΠΌ всС Π±Ρ‹Π»ΠΎ понятно. Но Ссли ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ вопросы, Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² коммСнтариях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

array_key_exists

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

array_key_exists β€” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, присутствуСт Π»ΠΈ Π² массивС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΈΠ»ΠΈ индСкс

ОписаниС

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Массив с провСряСмыми ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния ΠΈΠ»ΠΈ false Π² случаС возникновСния ошибки.

array_key_exists() ΠΈΡ‰Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ массива. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹Ρ… массивах Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования array_key_exists()

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 array_key_exists() ΠΈ isset()

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

User Contributed Notes 38 notes

If you want to take the performance advantage of isset() while keeping the NULL element correctly detected, use this:

Benchmark (100000 runs):
array_key_exists() : 205 ms
is_set() : 35ms
isset() || array_key_exists() : 48ms

Note:
The code for this check is very fast, so you shouldn’t warp the code into a single function like below, because the overhead of calling a function dominates the overall performance.

function array_check(. )
<
return (isset(..) || array_key_exists(. ))
>

You’ll notice several notes on this page stating that isset() is significantly faster than array_key_exists(). This may be true except for one small hitch. isset() will return false for arrays keys that have there value set to NULL, which is therefore not entirely accurate.

= array();
$foo [ ‘bar’ ] = NULL ;

Beware that if the array passed to array_key_exists is NULL, the return value will also be NULL.

This is undocumented behaviour, moreover the documentation (and return typehint) suggest that the array_key_exists function only returns boolean value. But that’s not the case.

The way array_key_exists handles null, float, boolean, and ‘integer-representing string’ keys is inconsistent in itself and, in the case of bool and float, with the way these are converted when used as array offset.

array (
» => 1,
0 => 2,
1 => 3,
4 => 4,
’08’ => 5,
8 => 6,
)
null is a key.
false is not a key.
true is not a key.
4.6 is not a key.
«08» is a key.
«8» is a key.

Well, and you get this warning three times (on the bools and the float, but not on the null):

Warning: array_key_exists() [function.array-key-exists]: The first argument should be either a string or an integer in /var/www/php/test.php on line 6

The argument of array_key_exists() vs. isset() came up in the workplace today, so I conducted a little benchmark to see which is faster:

?>

On Windows, the output is similar to

array_key_exists(): 0.504 [82.895%] seconds
isset(): 0.104 [17.105%] seconds

On Mac or Linux, isset() is faster but only by a factor of approximately 1.5.

I’ve got a new take on the multi key function I would like to share.

Very simple case-insensitive array_key_exists:

bool (in_array(strtolower($needle), array_map(‘strtolower’, array_keys($haystack))))

array_key_exists doesn’t work with objects implementing ArrayAccess interface. It also ignores possible __get() method in such objects, despite the fact it accepts object as a second parameter. It works only with ‘real’ properties.

Here is an example with array_key_exists switching between content-types :

I took hours for me to debug, and I finally recognized that,

Or you will get no reply.

Rudi’s multidimensional array_key_exists function was not working for me, so i built one that is.
Enjoy.

Here is a little function for case sensitivity to elaborate on what was said by MarkL from ##php (Freenode) and mmanning at mdanderson dot org from this page:

Also, I’ve been running into issues with escaping for Regex, so I decided to give something like this a shot:

Regarding performance differences between isset() and array_key_exists(), the differences may be there, but the function are not always interchangable.

A little function which take an array as keys

Here’s a function to return a reference to the first array element that has a given key. The code works for multidimensional arrays:

I created this function that uses array key exist to compare a form and a table to see if something has changed.

This can be very helpfull if you need to update a table record from a form but you do not want to display all table fields.

/// it works like array_key_exists that can go deeper

$cidade = array(
‘redonda’ => array(
‘curta’ => ‘o seu filme’
),
‘quadrada’ => array(
‘longa’ => array(
‘azul’ => array(‘logo’,2,’mais’,2,’sΓ£o’,4),
‘amarela’ => array(‘entΓ£o’,3,’vezes’,2,’sΓ£o’,6),
‘verde’ => array(‘senΓ£o’,100,’dividido por’,2,’Γ©’,50)
),
‘extravagante’ => array(
‘vermelha’ => ‘chama atenΓ§Γ£o’,
‘vinho’ => ‘cor de uva’,
‘ocre’ => 1255
),
‘comprida’ => array(
‘amarela’ => ‘brasilia dos mamonas’,
‘branca’ => ‘bandeira da paz’,
‘preta e branca’ => ‘peΓ§as do xadrez’
)
),
‘oval’ => array(
‘conde’ => ‘lobo’
),
‘plana’ => array(
‘curta’ => array(
‘azul’ => array(‘e’,2,’mais’,2,’sΓ£o’,4),
‘amarela’ => array(‘sim’,3,’vezes’,2,’sΓ£o’,6),
‘verde’ => array(‘verdade’,100,’dividido por’,2,’Γ©’,50)
)
)
);

/// if the tree you search for exists, it will print out ‘true’

Further research on this has turned up that the performance problems are a known, confirmed bug in PHP 5.1.x, and have been fixed in PHP builds after September 2006. You can find the bug report here: http://bugs.php.net/bug.php?id=38812

However, just because it’s a fixed bug doesn’t really change the conclusion. If you’re writing a script and there’s any chance it could be used on a PHP 5.1.x server, you should still avoid this function and use isset() or some other kind of test if you want it to run efficiently.

I saw some examples above for array_keys_exist() or functions to see if multiple keys exist in a given array and return false if any of them don’t.

Here is a simpler way to do this:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

array_search

(PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8)

array_search β€” ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ поиск Π΄Π°Π½Π½ΠΎΠ³ΠΎ значСния Π² массивС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ»ΡŽΡ‡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния

ОписаниС

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Если needle являСтся строкой, сравнСниС происходит с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ рСгистра.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #1 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования array_search()

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

User Contributed Notes 44 notes

in (PHP 5 >= 5.5.0) you don’t have to write your own function to search through a multi dimensional array

$userdb=Array
(
(0) => Array
(
(uid) => ‘100’,
(name) => ‘Sandra Shush’,
(url) => ‘urlof100’
),

(1) => Array
(
(uid) => ‘5465’,
(name) => ‘Stefanie Mcmohn’,
(pic_square) => ‘urlof100’
),

(2) => Array
(
(uid) => ‘40489’,
(name) => ‘Michael’,
(pic_square) => ‘urlof40489’
)
);

simply u can use this

$key = array_search(40489, array_column($userdb, ‘uid’));

About searcing in multi-dimentional arrays; two notes on «xfoxawy at gmail dot com»;

It perfectly searches through multi-dimentional arrays combined with array_column() (min php 5.5.0) but it may not return the values you’d expect.

Secondly, if your array is big, I would recommend you to first assign a new variable so that it wouldn’t call array_column() for each element it searches. For a better performance, you could do;

It’s what the document stated «may also return a non-Boolean value which evaluates to FALSE.»

the recursive function by tony have a small bug. it failes when a key is 0

here is the corrected version of this helpful function:

If you are using the result of array_search in a condition statement, make sure you use the === operator instead of == to test whether or not it found a match. Otherwise, searching through an array with numeric indicies will result in index 0 always getting evaluated as false/null. This nuance cost me a lot of time and sanity, so I hope this helps someone. In case you don’t know what I’m talking about, here’s an example:

hallo every body This function matches two arrays like
search an array like another or not array_match which can match

for searching case insensitive better this:

About searcing in multi-dimentional arrays;
note on «xfoxawy at gmail dot com» and turabgarip at gmail dot com;

$xx = array_column($array, ‘NAME’, ‘ID’);
will produce an array like :
$xx = [
[ID_val] => NAME_val
[ID_val] => NAME_val
]

$yy = array_search(‘tesxt’, array_column($array, ‘NAME’, ‘ID’));
will output expected ID;

To expand on previous comments, here are some examples of
where using array_search within an IF statement can go
wrong when you want to use the array key thats returned.

Take the following two arrays you wish to search:

I was going to complain bitterly about array_search() using zero-based indexes, but then I realized I should be using in_array() instead.

The essence is this: if you really want to know the location of an element in an array, then use array_search, else if you only want to know whether that element exists, then use in_array()

Be careful when search for indexes from array_keys() if you have a mixed associative array it will return both strings and integers resulting in comparison errors

/* The above prints this, as you can see we have mixed keys
array(3) <
[0]=>
int(0)
[1]=>
string(3) «car»
[2]=>
int(1)
>
*/

hey i have a easy multidimensional array search function

Despite PHP’s amazing assortment of array functions and juggling maneuvers, I found myself needing a way to get the FULL array key mapping to a specific value. This function does that, and returns an array of the appropriate keys to get to said (first) value occurrence.

But again, with the above solution, PHP again falls short on how to dynamically access a specific element’s value within the nested array. For that, I wrote a 2nd function to pull the value that was mapped above.

I needed a way to return the value of a single specific key, thus:

Better solution of multidimensional searching.

FYI, remember that strict mode is something that might save you hours.

one thing to be very aware of is that array_search() will fail if the needle is a string and the array itself contains values that are mixture of numbers and strings. (or even a string that looks like a number)

The problem is that unless you specify «strict» the match is done using == and in that case any string will match a numeric value of zero which is not what you want.

also, php can lookup an index pretty darn fast. for many scenarios, it is practical to maintain multiple arrays, one in which the index of the array is the search key and the normal array that contains the data.

//very fast lookup, this beats any other kind of search

I had an array of arrays and needed to find the key of an element by comparing actual reference.
Beware that even with strict equality (===) php will equate arrays via their elements recursively, not by a simple internal pointer check as with class objects. The === can be slow for massive arrays and also crash if they contain circular references.

This function performs reference sniffing in order to return the key for an element that is exactly a reference of needle.

A simple recursive array_search function :

A variation of previous searches that returns an array of keys that match the given value:

I needed a function, that returns a value by specifying a keymap to the searched value in a multidimensional array and came up with this.

My function get_key_in_array() needed some improvement:

An implementation of a search function that uses a callback, to allow searching for objects of arbitrary complexity:

For instance, if you have an array of objects with an id property, you could search for the object with a specific id like this:

For a more complex example, this function takes an array of key/value pairs and returns the key for the first item in the array that has all those properties with the same values.

The final step is a function that returns the item, rather than its key, or null if no match found:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с массивами

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

User Contributed Notes 14 notes

A simple trick that can help you to guess what diff/intersect or sort function does by name.

Example: array_diff_assoc, array_intersect_assoc.

Example: array_diff_key, array_intersect_key.

Example: array_diff, array_intersect.

Example: array_udiff_uassoc, array_uintersect_assoc.

This also works with array sort functions:

Example: arsort, asort.

Example: uksort, ksort.

Example: rsort, krsort.

Example: usort, uasort.

?>
Return:
Array ( [ 0 ] => Cero [ 1 ] => Uno [ 2 ] => Dos [ 3 ] => Cuatro [ 4 ] => Cinco [ 5 ] => Tres [ 6 ] => Seis [ 7 ] => Siete [ 8 ] => Ocho [ 9 ] => Nueve [ 10 ] => Diez )
Array ( [ 0 ] => Cero [ 1 ] => Uno [ 2 ] => Dos [ 3 ] => Tres [ 4 ] => Cuatro [ 5 ] => Cinco [ 6 ] => Seis [ 7 ] => Siete [ 8 ] => Ocho [ 9 ] => Nueve [ 10 ] => Diez )
?>

Updated code of ‘indioeuropeo’ with option to input string-based keys.

Here is a function to find out the maximum depth of a multidimensional array.

// return depth of given array
// if Array is a string ArrayDepth() will return 0
// usage: int ArrayDepth(array Array)

Short function for making a recursive array copy while cloning objects on the way.

If you need to flattern two-dismensional array with single values assoc subarrays, you could use this function:

to 2g4wx3:
i think better way for this is using JSON, if you have such module in your PHP. See json.org.

to convert JS array to JSON string: arr.toJSONString();
to convert JSON string to PHP array: json_decode($jsonString);

You can also stringify objects, numbers, etc.

Function to pretty print arrays and objects. Detects object recursion and allows setting a maximum depth. Based on arraytostring and u_print_r from the print_r function notes. Should be called like so:

I was looking for an array aggregation function here and ended up writing this one.

Note: This implementation assumes that none of the fields you’re aggregating on contain The ‘@’ symbol.

While PHP has well over three-score array functions, array_rotate is strangely missing as of PHP 5.3. Searching online offered several solutions, but the ones I found have defects such as inefficiently looping through the array or ignoring keys.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Website-create.ru

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ сущСствуСт Π»ΠΈ Ρ‚ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта Π² массивС. БСгодня ΠΌΡ‹ рассмотрим нСсколько Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия значСния элСмСнта Π² массивС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ массивы ΠΈΠ· нашСй Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ значСния Π² Π½Π΅ΠΌ. ИскомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ нашСго скрипта, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΡ‰Π΅Ρ‚. По Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ поиска ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ дСйствия. ВсС зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска значСния Π² массивС Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅.

БСгодня ΠΌΡ‹ ΠΈΡ… рассмотрим.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия значСния Π² массивС. Ѐункция in_array()

Ѐункция in_array() ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π½Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ значСния Π² массивС.

Если Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΠ΄Π°Ρ‡Π½Ρ‹ΠΉ ΠΈ искомый элСмСнт Π² массивС Π½Π°ΠΉΠ΄Π΅Π½, Ρ‚ΠΎ функция Π²Π΅Ρ€Π½Π΅Ρ‚ true, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Β«ΠΏΡ€Π°Π²Π΄ΡƒΒ».

Π’Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ функция осущСствляСт сравнСниС с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ рСгистра символов.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° простом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.
Нам Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ массив. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ значСния Π² массивС ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° экран ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ сообщСниС.

ΠžΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π² функция Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Π½Π° экран сообщСниС Β«YesΒ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ элСмСнт Β«MarinaΒ» Π² нашСм массивС присутствуСт.

ΠŸΠΎΠΌΠ΅Π½ΡΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт, ΠΈ Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС Β«NoΒ».

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия значСния Π² массивС. Ѐункция array_search()

БущСствуСт ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° функция для поиска array_search(), которая Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. Π­Ρ‚ΠΎ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ, Ссли ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ассоциативным массивом.

Ѐункция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Ρ‡Ρ‚ΠΎ ΠΈ прСдыдущая. ΠŸΡ€ΠΈ этом Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ‚Π°ΠΊΠΆΠ΅ являСтся Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, работая с ассоциативным массивом.

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π½Π° экранС Β«nameΒ», Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ искомого элСмСнта со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Β«MilaΒ».

Π­Ρ‚ΠΈ Π΄Π²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ ΠΈ ΠΏΠΎ сути ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Поиск значСния Π² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС

А Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌ массивом? Π’Π΅Π΄ΡŒ Π΅Π³ΠΎ элСмСнтами Π±ΡƒΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы.

Π—Π΄Π΅ΡΡŒ ΡƒΠΆΠ΅ рассмотрСнныС Π½Π°ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

На самом Π΄Π΅Π»Π΅ всС Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ слоТно, просто Π½ΡƒΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΡΠ»ΠΎΠΆΠ½ΠΈΡ‚ΡŒ вСсь ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, foreach(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСкрасно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с массивами.

Допустим Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив. Π•Π³ΠΎ нСпосрСдствСнными значСниями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ массивы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта.

ВсС, Ρ‡Ρ‚ΠΎ трСбуСтся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ – это ΠΏΠ΅Ρ€Π΅Π±Ρ€Π°Ρ‚ΡŒ элСмСнты ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ массива Π² Ρ†ΠΈΠΊΠ»Π΅ foreach(). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт этого массива Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π½ Π½Π° ΠΊΠ»ΡŽΡ‡ ($key) ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ($value).

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· массивов, находящийся Π²Π½ΡƒΡ‚Ρ€ΠΈ основного ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ массива. Π’ΠΎΡ‚ с этими значСниями ΠΌΡ‹ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΈΡ‰Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ массивС искомоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ элСмСнта.

ΠŸΡ€ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΌΡ‹ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° экран сообщСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ элСмСнт сущСствуСт, Π° Ссли Π½Π΅Ρ‚, Ρ‚ΠΎ Π²Ρ‹Π²Π΅Π΄Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ сообщСниС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ элСмСнта Π½Π΅Ρ‚.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим всС это Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠΎΠ΄Π°:

Как Π’Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΌΡ‹ объявляСм сам ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив.

ΠŸΡ€ΠΈ этом здСсь ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅ просто Π·Π½Π°ΠΊ равСнства, Π° Β«.=Β».

Как Π’Ρ‹ поняли, ΠΈΡ‚ΠΎΠ³ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этого ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ сообщСниС Β«OK! Element here!Β».

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ искомый элСмСнт Π½Π° Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈ Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС Β«No have element!Β».

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΏΡ€ΠΈ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π΅ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ просто Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сообщСния, Π° Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ дСйствия. ВсС зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. НапримСр, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ искомого значСния Π² массивС, Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Ρ‚.Π΄.

Π’ΠΎΡ‚ ΠΈ всС Π½Π° сСгодня! НадСюсь, ΡƒΡ€ΠΎΠΊ Π±Ρ‹Π» понятСн ΠΈ ΠΏΠΎΠ»Π΅Π·Π΅Π½! ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ сами Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π²ΠΎ всСм ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

А я ΠΆΠ΄Ρƒ Π’Π°ΡˆΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π².

Π”Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΡƒΡ€ΠΎΠΊΠΎΠΌ со своими Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΎΠΊ соц. сСтСй, располоТСнных Π½ΠΈΠΆΠ΅. А Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° обновлСния Π±Π»ΠΎΠ³Π°. ΠœΡ‹ ΡƒΠΆΠ΅ собрали достаточно Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ Π°Ρ€Ρ…ΠΈΠ² ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ!

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *