TL;博士
我有这些数据:var_export和print_r。
我需要将其缩小到: http: //pastebin.com/EqwgpgAP ($data['Stock Information:'][0][0]);
一个人将如何实现它?(动态)
我正在使用 vTiger 5.4.0 CRM 并希望实现一个函数,该函数将根据搜索条件返回特定字段信息。
好吧,vTiger 是一个写得很弱的系统,看起来和感觉都很老旧,一切都来自数百个具有多个连接的表(这实际上并没有那么糟糕)等等,但工作就是工作。
需要usageunit
从产品模块、库存信息块中获取选项列表。
由于没有这样的功能getField();
,我期待将其从 Blocks 中过滤掉,这实际上也是在收集有关字段的信息。
getBlocks();
然后调用 something close to getFields();
,再次调用 something close togetValues();
等等。
所以...
$focus = new $currentModule(); // Products
$displayView = getView($focus->mode);
$productsBlocks = getBlocks($currentModule, $displayView, $focus->mode, $focus->column_fields); // in theory, $focus->column_fields should/could be narrowed down to my specific field, but vTiger doesn't work that way
echo "<pre>"; print_r($productsBlocks); echo "</pre>"; // = http://pastebin.com/3iTDUUgw (huge dump)
如您所见,键 下的数组[Stock Information:]
实际上来自翻译(yada,yada ...),下[0][0]
包含 的信息usageunit
。
现在,我试图array_filter();
从那里取出数据,但我设法得到的唯一东西被$productsBlocks
剥离为只包含[Stock Information:]
所有数据:
$getUsageUnit = function($value) use (&$getUsageUnit) {
if(is_array($value)) return array_filter($value, $getUsageUnit);
if($value == 'usageunit') return true;
};
$productsUsageUnit = array_filter($productsBlocks, $getUsageUnit);
echo "<pre>"; print_r($productsUsageUnit); echo "</pre>"; // = http://pastebin.com/LU6VRC4h (not that huge of a dump)
而且,我期待的结果是http://pastebin.com/EqwgpgAP,这是我手动获得的print_r($productsUsageUnit['Stock Information:'][0][0]);
。
我如何实现这一目标?(动态...)