Полезные php функции
Последние записи
Данную солянку собираю давно и большую часть авторов не нашел\не помню. Если вы узнали свой код, то пишите - добавлю Ваше авторство
Поиск совпадений по ключу в многомерном массиве
function search($array, $key, $value)
{
$results = array();
if (is_array($array)) {
if (isset($array[$key]) && $array[$key] == $value) {
$results[] = $array;
}
foreach ($array as $subarray) {
$results = array_merge($results, search($subarray, $key, $value));
}
}
return $results;
}
$arr = array(0 => array(id=>1,name=>"cat 1"),
1 => array(id=>2,name=>"cat 2"),
2 => array(id=>3,name=>"cat 1"));
print_r(search($arr, 'name', 'cat 1'));
Преобразовать StdClassObject в массив
$array = json_decode(object, True);
Разбить массив по индексу
// an array
$array = array(1, 2, 3, "products", 4, 5);
// $offset = 3
$offset = array_search("products", $array);
// array(4,5)
$last_batch = array_slice($array, ($offset + 1));
// array(1,2,3)
$first_batch = array_slice($array, 0, $offset);
Удалить последний элемент массива
array_pop($stack)
Определяем последний индекс массива
$array = array(
'first' => 123,
'second' => 456,
'last' => 789,
);
end($array); // move the internal pointer to the end of the array
$key = key($array); // fetches the key of the element pointed to by the internal pointer
var_dump($key);
Что делать если json_encode
не работает
function safe_json_encode($value, $options = 0, $depth = 512){
$encoded = json_encode($value, $options, $depth);
switch (json_last_error()) {
case JSON_ERROR_NONE:
return $encoded;
case JSON_ERROR_DEPTH:
return 'Maximum stack depth exceeded'; // or trigger_error() or throw new Exception()
case JSON_ERROR_STATE_MISMATCH:
return 'Underflow or the modes mismatch'; // or trigger_error() or throw new Exception()
case JSON_ERROR_CTRL_CHAR:
return 'Unexpected control character found';
case JSON_ERROR_SYNTAX:
return 'Syntax error, malformed JSON'; // or trigger_error() or throw new Exception()
case JSON_ERROR_UTF8:
$clean = utf8ize($value);
return safe_json_encode($clean, $options, $depth);
default:
return 'Unknown error'; // or trigger_error() or throw new Exception()
}
}
function utf8ize($mixed) {
if (is_array($mixed)) {
foreach ($mixed as $key => $value) {
$mixed[$key] = utf8ize($value);
}
} else if (is_string ($mixed)) {
return utf8_encode($mixed);
}
return $mixed;
}
За функцию спасибо Константину с сайта Как решить ошибку JSON_ERROR_UTF8 в php json_decode?
Комментарии