Example:
$array = array(
'names' => array(
'john',
'peter',
'bill'
),
'products' => array(
'cheese',
array(
'natural' => 'milk',
'brie'
)
)
);
$flatten = Arrays::flatten($array);
Result:
Array
(
[0] => john
[1] => peter
[2] => bill
[3] => cheese
[4] => milk
[5] => brie
)
public function __construct($where, $operator = 'AND') { foreach ($where as $column => $value) { if ($value === null) { $where[$column] = Restrictions::isNull(); } } $this->where = $where; $this->values = Arrays::flatten(array_values($where)); $this->operator = $operator; }
public function execute() { if (empty($this->_models)) { return; } $this->_callBeforeSaveCallbacks(); $metaInstance = Arrays::first($this->_models); $columns = $metaInstance->getFieldsWithoutPrimaryKey(); $primaryKey = $metaInstance->getIdName(); $table = $metaInstance->getTableName(); $sql = DialectFactory::create()->batchInsert($table, $primaryKey, $columns, count($this->_models)); $params = $this->_prepareParams($primaryKey); $ids = Arrays::flatten(Db::getInstance()->query($sql, $params)->fetchAll(PDO::FETCH_NUM)); $this->_assignPrimaryKeys($primaryKey, $ids); $this->_callAfterSaveCallbacks(); }
public function flatten() { $this->_array = Arrays::flatten($this->_array); return $this; }
/** * Flatten an array and return all values in a one-dimensional array. Keys are dropped. * * @param array $array * * @return array */ function array_flatten(array $array) { return Arrays::flatten($array); }
/** * @test */ public function shouldFlattenAnArray() { //given $array = array('names' => array('john', 'peter', 'bill'), 'products' => array('cheese', 'test' => array('natural' => 'milk', 'brie'))); //when $flatten = Arrays::flatten($array); //then Assert::thatArray($flatten)->hasSize(6)->containsExactly('john', 'peter', 'bill', 'cheese', 'milk', 'brie'); }