0

こんにちは私はmagentoからすべての製品データをフェッチするスクリプトを持っています、名前同じであるがsku異なるいくつかの製品があるという1つの問題が発生します、私は同じ値を持つ製品名を追加したい一意の値を持つ追加しないでください...

<?php
@ob_start();
@session_start();
ini_set('display_errors', 1);
include '../../../../app/Mage.php';
umask(0);
Mage::app('default');

function empty_pk($data){
if($data!=''){return $data;}
else {return "&nbsp;";}
}
$collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('status', 1);
//arsort($collection);  

//echo'<pre>';
 //print_r($collection);die();
echo 'count===='.count($collection).'<br/>';
$i=0;
foreach ($collection as $product_all) { 
//echo $product_all->getId().'<br/>';
    if($i==10) break;  
 $id = $product_all->getId();        
 $neew = Mage::getModel('catalog/product')->load($id);         
//echo'<pre>';

$product_id = $neew->getId();
$created_at = ' 2013-01-26 00:53:46';
$description = $neew->getdescription();
$short_description = $neew->getshort_description();
$sku = $neew->getsku();
$size_fit = $neew->getsize_fit();
$style_ideas = $neew->getstyle_ideas();
$name = $neew->getname();

これどうやってするの

4

1 に答える 1

0

名前の数を保持するために一時配列を使用して、それでフィルタリングできます。

function empty_pk($data){
if($data!=''){return $data;}
else {return "&nbsp;";}
}
$collection = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('status', 1);
//arsort($collection);  

$names = array();
foreach ($collection as $product_all) {
  $name = $product_all->getName();
  if (array_key_exists($name)) {
      $names[$name]++;
  } else {
      $names[$name] = 1;
  }
}
//echo'<pre>';
 //print_r($collection);die();
echo 'count===='.count($collection).'<br/>';
$i=0;
foreach ($collection as $product_all) { 
//echo $product_all->getId().'<br/>';
    if($i==10) break;  
 $id = $product_all->getId();        
 $neew = Mage::getModel('catalog/product')->load($id);         
//echo'<pre>';

// Exit if unique.
if ($names[ $neew->getName() ] == 1) {
    break;
}

$product_id = $neew->getId();
$created_at = ' 2013-01-26 00:53:46';
于 2013-01-28T09:17:24.817 に答える