first commit
This commit is contained in:
@@ -0,0 +1,166 @@
|
||||
<?php
|
||||
|
||||
if ( ! function_exists( '_cleanup_header_comment' ) ) {
|
||||
function _cleanup_header_comment( $str ) {
|
||||
return trim( preg_replace( '/\s*(?:\*\/|\?>).*/', '', $str ) );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! defined( 'E_DEPRECATED' ) ) {
|
||||
define( 'E_DEPRECATED', 8192 ); }
|
||||
|
||||
if ( ! function_exists( 'esc_textarea' ) ) :
|
||||
|
||||
function esc_textarea( $text ) {
|
||||
$safe_text = esc_html( $text );
|
||||
return apply_filters( 'esc_textarea', $safe_text, $text );
|
||||
}
|
||||
|
||||
endif;
|
||||
|
||||
/**
|
||||
* This file is part of the array_column library
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*
|
||||
* @copyright Copyright (c) 2013 Ben Ramsey <http://benramsey.com>
|
||||
* @license http://opensource.org/licenses/MIT MIT
|
||||
*/
|
||||
|
||||
if ( ! function_exists( 'array_column' ) ) {
|
||||
|
||||
/**
|
||||
* Returns the values from a single column of the input array, identified by
|
||||
* the $columnKey.
|
||||
*
|
||||
* Optionally, you may provide an $indexKey to index the values in the returned
|
||||
* array by the values from the $indexKey column in the input array.
|
||||
*
|
||||
* @param array $input A multi-dimensional array (record set) from which to pull
|
||||
* a column of values.
|
||||
* @param mixed $columnKey The column of values to return. This value may be the
|
||||
* integer key of the column you wish to retrieve, or it
|
||||
* may be the string key name for an associative array.
|
||||
* @param mixed $indexKey (Optional.) The column to use as the index/keys for
|
||||
* the returned array. This value may be the integer key
|
||||
* of the column, or it may be the string key name.
|
||||
* @return array|false
|
||||
*/
|
||||
function array_column( $input = null, $columnKey = null, $indexKey = null ) {
|
||||
// Using func_get_args() in order to check for proper number of
|
||||
// parameters and trigger errors exactly as the built-in array_column()
|
||||
// does in PHP 5.5.
|
||||
$argc = func_num_args();
|
||||
$params = func_get_args();
|
||||
|
||||
if ( $argc < 2 ) {
|
||||
trigger_error( "array_column() expects at least 2 parameters, {$argc} given", E_USER_WARNING );
|
||||
return null;
|
||||
}
|
||||
|
||||
if ( ! is_array( $params[0] ) ) {
|
||||
trigger_error( 'array_column() expects parameter 1 to be array, ' . gettype( $params[0] ) . ' given', E_USER_WARNING );
|
||||
return null;
|
||||
}
|
||||
|
||||
if ( ! is_int( $params[1] )
|
||||
&& ! is_float( $params[1] )
|
||||
&& ! is_string( $params[1] )
|
||||
&& $params[1] !== null
|
||||
&& ! ( is_object( $params[1] ) && method_exists( $params[1], '__toString' ) )
|
||||
) {
|
||||
trigger_error( 'array_column(): The column key should be either a string or an integer', E_USER_WARNING );
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( isset( $params[2] )
|
||||
&& ! is_int( $params[2] )
|
||||
&& ! is_float( $params[2] )
|
||||
&& ! is_string( $params[2] )
|
||||
&& ! ( is_object( $params[2] ) && method_exists( $params[2], '__toString' ) )
|
||||
) {
|
||||
trigger_error( 'array_column(): The index key should be either a string or an integer', E_USER_WARNING );
|
||||
return false;
|
||||
}
|
||||
|
||||
$paramsInput = $params[0];
|
||||
$paramsColumnKey = ( $params[1] !== null ) ? (string) $params[1] : null;
|
||||
|
||||
$paramsIndexKey = null;
|
||||
if ( isset( $params[2] ) ) {
|
||||
if ( is_float( $params[2] ) || is_int( $params[2] ) ) {
|
||||
$paramsIndexKey = (int) $params[2];
|
||||
} else {
|
||||
$paramsIndexKey = (string) $params[2];
|
||||
}
|
||||
}
|
||||
|
||||
$resultArray = array();
|
||||
|
||||
foreach ( $paramsInput as $row ) {
|
||||
|
||||
$key = $value = null;
|
||||
$keySet = $valueSet = false;
|
||||
|
||||
if ( $paramsIndexKey !== null && array_key_exists( $paramsIndexKey, $row ) ) {
|
||||
$keySet = true;
|
||||
$key = (string) $row[ $paramsIndexKey ];
|
||||
}
|
||||
|
||||
if ( $paramsColumnKey === null ) {
|
||||
$valueSet = true;
|
||||
$value = $row;
|
||||
} elseif ( is_array( $row ) && array_key_exists( $paramsColumnKey, $row ) ) {
|
||||
$valueSet = true;
|
||||
$value = $row[ $paramsColumnKey ];
|
||||
}
|
||||
|
||||
if ( $valueSet ) {
|
||||
if ( $keySet ) {
|
||||
$resultArray[ $key ] = $value;
|
||||
} else {
|
||||
$resultArray[] = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $resultArray;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'array_replace_recursive' ) ) {
|
||||
function array_replace_recursive( $array, $array1 ) {
|
||||
// handle the arguments, merge one by one
|
||||
$args = func_get_args();
|
||||
$array = $args[0];
|
||||
if ( ! is_array( $array ) ) {
|
||||
return $array;
|
||||
}
|
||||
$args_count = count( $args );
|
||||
for ( $i = 1; $i < $args_count; $i ++ ) {
|
||||
if ( is_array( $args[ $i ] ) ) {
|
||||
$array = array_replace_recursive_recurse( $array, $args[ $i ] );
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
function array_replace_recursive_recurse( $array, $array1 ) {
|
||||
foreach ( $array1 as $key => $value ) {
|
||||
// create new key in $array, if it is empty or not an array
|
||||
if ( ! isset( $array[ $key ] ) || ( isset( $array[ $key ] ) && ! is_array( $array[ $key ] ) ) ) {
|
||||
$array[ $key ] = array();
|
||||
}
|
||||
|
||||
// overwrite the value in the base array
|
||||
if ( is_array( $value ) ) {
|
||||
$value = array_replace_recursive_recurse( $array[ $key ], $value );
|
||||
}
|
||||
$array[ $key ] = $value;
|
||||
}
|
||||
|
||||
return $array;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user