public function testCanImplodeAnArray() { $array = Arrays::implode($this->array, ','); $this->assertEquals('bar,ter', $array); }
private function filterModels($filter) { if (is_array($filter)) { foreach ($filter as $key => $keyValue) { if (is_array($keyValue)) { if ($keyValue[0] == 'strict') { $this->allModels = Arrays::filter($this->allModels, function ($value) use($key, $keyValue) { return $value[$key] == $keyValue[1]; }); } } elseif (is_bool($keyValue)) { $this->allModels = Arrays::filterBy($this->allModels, $key, $keyValue); } else { // todo: Optimize filter with param for "like" and "equal" filtering if ($key === 'slug') { $this->allModels = Arrays::filterBy($this->allModels, $key, $keyValue); } else { $this->allModels = Arrays::filter($this->allModels, function ($value) use($key, $keyValue) { if (!empty($value[$key]) && is_array($value[$key])) { $value[$key] = Arrays::implode($value[$key], "||"); } elseif (strpos($key, "|") !== false) { $key = str_replace("|", ".", $key); } $array = new Underscore($value); return stripos($array->get($key), html_entity_decode($keyValue)) !== false; }); } } } } }