eval for filtering values containing search in multidimensional array
up vote
-2
down vote
favorite
I was trying to create a function for filtering LIKE values in multiple columns of multidimensional array. I tried to loop through the array of column names to create a strpos function but in string format. When I used eval to run the imploded string of code, I received error "Unexpected end of file, eval d'code on line xx".
I don't understand the problem. Here is the function:
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval($filter)){
$result = $data;
}
}
print_r($result);
}
php eval
add a comment |
up vote
-2
down vote
favorite
I was trying to create a function for filtering LIKE values in multiple columns of multidimensional array. I tried to loop through the array of column names to create a strpos function but in string format. When I used eval to run the imploded string of code, I received error "Unexpected end of file, eval d'code on line xx".
I don't understand the problem. Here is the function:
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval($filter)){
$result = $data;
}
}
print_r($result);
}
php eval
1
i see no reason to use eval here.
– IdontDownVote
Nov 22 at 1:47
Remove the quotes around the value of$filter
, remove eval, and you'll be set.
– Ibu
Nov 22 at 1:50
I can't make the imploded strpos function to work. Can someone show me the actual solution? Will be greatly appreciated.
– Ellsworth
Nov 22 at 2:05
add a comment |
up vote
-2
down vote
favorite
up vote
-2
down vote
favorite
I was trying to create a function for filtering LIKE values in multiple columns of multidimensional array. I tried to loop through the array of column names to create a strpos function but in string format. When I used eval to run the imploded string of code, I received error "Unexpected end of file, eval d'code on line xx".
I don't understand the problem. Here is the function:
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval($filter)){
$result = $data;
}
}
print_r($result);
}
php eval
I was trying to create a function for filtering LIKE values in multiple columns of multidimensional array. I tried to loop through the array of column names to create a strpos function but in string format. When I used eval to run the imploded string of code, I received error "Unexpected end of file, eval d'code on line xx".
I don't understand the problem. Here is the function:
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval($filter)){
$result = $data;
}
}
print_r($result);
}
php eval
php eval
edited Nov 22 at 1:49
Ibu
32k95986
32k95986
asked Nov 22 at 1:44
Ellsworth
75
75
1
i see no reason to use eval here.
– IdontDownVote
Nov 22 at 1:47
Remove the quotes around the value of$filter
, remove eval, and you'll be set.
– Ibu
Nov 22 at 1:50
I can't make the imploded strpos function to work. Can someone show me the actual solution? Will be greatly appreciated.
– Ellsworth
Nov 22 at 2:05
add a comment |
1
i see no reason to use eval here.
– IdontDownVote
Nov 22 at 1:47
Remove the quotes around the value of$filter
, remove eval, and you'll be set.
– Ibu
Nov 22 at 1:50
I can't make the imploded strpos function to work. Can someone show me the actual solution? Will be greatly appreciated.
– Ellsworth
Nov 22 at 2:05
1
1
i see no reason to use eval here.
– IdontDownVote
Nov 22 at 1:47
i see no reason to use eval here.
– IdontDownVote
Nov 22 at 1:47
Remove the quotes around the value of
$filter
, remove eval, and you'll be set.– Ibu
Nov 22 at 1:50
Remove the quotes around the value of
$filter
, remove eval, and you'll be set.– Ibu
Nov 22 at 1:50
I can't make the imploded strpos function to work. Can someone show me the actual solution? Will be greatly appreciated.
– Ellsworth
Nov 22 at 2:05
I can't make the imploded strpos function to work. Can someone show me the actual solution? Will be greatly appreciated.
– Ellsworth
Nov 22 at 2:05
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval("return $filter;")){
$result = $data;
}
}
print_r($result);
}
Got it done. Thanks.
please read the manuals warning about eval(), its not needed here at all
– IdontDownVote
Nov 22 at 5:11
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval("return $filter;")){
$result = $data;
}
}
print_r($result);
}
Got it done. Thanks.
please read the manuals warning about eval(), its not needed here at all
– IdontDownVote
Nov 22 at 5:11
add a comment |
up vote
0
down vote
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval("return $filter;")){
$result = $data;
}
}
print_r($result);
}
Got it done. Thanks.
please read the manuals warning about eval(), its not needed here at all
– IdontDownVote
Nov 22 at 5:11
add a comment |
up vote
0
down vote
up vote
0
down vote
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval("return $filter;")){
$result = $data;
}
}
print_r($result);
}
Got it done. Thanks.
public function ArrayFilterLike($array, $filter, $search){
$result = ;
foreach ($filter as $key => $value) {
$filter[$key] = "strpos($data['$value'], $search) !== false";
}
$filter = implode(" || ", $filter);
foreach ($array as $data) {
if(eval("return $filter;")){
$result = $data;
}
}
print_r($result);
}
Got it done. Thanks.
answered Nov 22 at 2:45
Ellsworth
75
75
please read the manuals warning about eval(), its not needed here at all
– IdontDownVote
Nov 22 at 5:11
add a comment |
please read the manuals warning about eval(), its not needed here at all
– IdontDownVote
Nov 22 at 5:11
please read the manuals warning about eval(), its not needed here at all
– IdontDownVote
Nov 22 at 5:11
please read the manuals warning about eval(), its not needed here at all
– IdontDownVote
Nov 22 at 5:11
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53422795%2feval-for-filtering-values-containing-search-in-multidimensional-array%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
i see no reason to use eval here.
– IdontDownVote
Nov 22 at 1:47
Remove the quotes around the value of
$filter
, remove eval, and you'll be set.– Ibu
Nov 22 at 1:50
I can't make the imploded strpos function to work. Can someone show me the actual solution? Will be greatly appreciated.
– Ellsworth
Nov 22 at 2:05