我被如何在序列化的php数组中搜索特定值所困扰。
例如
我已经将一周中的天数存储在一个usermeta表中,该表的关键字为days Available。
现在我想通过搜索表单显示哪些用户在给定的日子里可用
我的序列化数组看起来像这个
a:6:{i:0;s:6:"Sunday";i:1;s:6:"Monday";i:2;s:7:"Tuesday";i:3;s:9:"Wednesday";i:4;s:8:"Thursday";i:5;s:6:"Friday";}
我不想使用类似%的运算符。任何替代方案都是合适的。
任何帮助都将不胜感激。谢谢
我认为您的问题没有mysql解决方案。它"可能"适用于"简单"php对象的LIKE
查询,但不能保证。对于搜索字符串,LIKE
查询将始终有效,但不能保证字符串出现在正确的上下文中。
然而,没有通用的mysql解决方案。您需要在php中取消行的序列化,然后在对象/数组本身中进行搜索。
取消初始化a:6:{i:0;s:6:"Sunday";i:1;s:6:"Monday";i:2;s:7:"Tuesday";i:3;s:9:"Wednesday";i:4;s:8:"Thursday";i:5;s:6:"Friday";}
则通过array_search('$search', $array);
搜索值